| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1003 人关注过本帖
标题:怎样在Java中实现绘图时的橡皮线效果?
只看楼主 加入收藏
liugy52
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-10-1
收藏
 问题点数:0 回复次数:2 
怎样在Java中实现绘图时的橡皮线效果?
怎样在Java中实现绘图时的橡皮线效果?
搜索更多相关主题的帖子: Java 效果 橡皮 绘图 
2007-03-01 17:02
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
实现mouseDragged方法

可惜不是你,陪我到最后
2007-03-01 19:50
Eastsun
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:802
专家分:0
注 册:2006-12-14
收藏
得分:0 

恰好以前给别人写过一个示例:



import java.awt.geom.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
/**
*简单的画图程序
*@author [url=http://eastsun.javaeye.com]Eastsun[/url]
*@version .1
*/
public class DrawPanel extends JFrame{
LinkedList<Shape> shapeList =new LinkedList<Shape>();
Shape shape;
Stroke stroke =new BasicStroke(1.0f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND,
0,new float[]{8f,3f},1);
Point start,end;
final String[] type =new String[]{\"Line\",\"Rectangle\",\"Ellipse\"};
JComboBox comboBox =new JComboBox(type);
public DrawPanel(){
super(\"DrawPanel\");
JPanel panel =new JPanel(){
public void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2 =(Graphics2D)g;
g2.setColor(Color.white);
g2.fillRect(0,0,getWidth(),getHeight());
g2.setColor(Color.black);
for(Shape s:shapeList) g2.draw(s);
if(shape!=null){
g2.setStroke(stroke);
g2.setPaint(Color.blue);
g2.draw(shape);
}
}
};
panel.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
start =e.getPoint();
}
public void mouseReleased(MouseEvent e){
if(shape!=null) shapeList.add(shape);
shape =null;
repaint();
}
});
panel.addMouseMotionListener(new MouseMotionAdapter(){
public void mouseDragged(MouseEvent e){
end =e.getPoint();
Object select =comboBox.getSelectedItem();
if(select.equals(type[0])) shape =new Line2D.Float(start,end);
else{
if(select.equals(type[1])) shape =new Rectangle();
else shape =new Ellipse2D.Float();
((RectangularShape)shape).setFrameFromDiagonal(start,end);
}
repaint();
}
});
panel.setPreferredSize(new Dimension(320,240));
add(panel,BorderLayout.NORTH);

add(comboBox,BorderLayout.SOUTH);

pack();
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);

}
public static void main(String[] args){
new DrawPanel();
}
}

[此贴子已经被作者于2007-3-1 21:53:23编辑过]


My BlogClick Me
2007-03-01 21:51
快速回复:怎样在Java中实现绘图时的橡皮线效果?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020033 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved