/*
* gra.java
*
* Created on 200776, 6:35
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*//**
*
* @author van
*/
import java.awt.*;
import java.awt.event.*;
import java.awt.Graphics;
import javax.swing.*;
import java.lang.*;
import javax.swing.event.*;
class myPanel extends JPanel implements MouseMotionListener,MouseListener
{ private int mousex1,mousey1,mousex2,mousey2;
public myPanel()
{
setBackground(Color.white);
addMouseMotionListener(this);
addMouseListener(this);
}
public void update(Graphics g)
{
super.update(g);
paintComponent(g);
}
public void paintComponent(Graphics g)
{ super.paintComponent(g);
g.drawLine(mousex1,mousey1,mousex2,mousey2);
};
public void mousePressed(MouseEvent event){
if(event.getModifiers()==InputEvent.BUTTON1_MASK){
mousex1=event.getX();
mousey1=event.getY();
}
}
public void mouseClicked(MouseEvent event){
}
public void mouseReleased(MouseEvent event){
}
public void mouseEntered(MouseEvent event){
}
public void mouseExited(MouseEvent event){
}
public void mouseDragged(MouseEvent event){
if(event.getModifiers()==InputEvent.BUTTON1_MASK){
mousex2=event.getX();
mousey2=event.getY();
repaint();
}
}
public void mouseMoved(MouseEvent event){
}
}public class gra {
/** Creates a new instance of gra */
public gra() {
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
JFrame f=new JFrame("AWT");
myPanel mp=new myPanel();
f.add(mp);
f.setSize(600,400);
f.setLocation(100,100);
f.addWindowListener(
new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{System.exit(0);};
}
);
f.show();
}
}这段代码如何修改才能实现第二次画线时不把第一次画的线清除
* gra.java
*
* Created on 200776, 6:35
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*//**
*
* @author van
*/
import java.awt.*;
import java.awt.event.*;
import java.awt.Graphics;
import javax.swing.*;
import java.lang.*;
import javax.swing.event.*;
class myPanel extends JPanel implements MouseMotionListener,MouseListener
{ private int mousex1,mousey1,mousex2,mousey2;
public myPanel()
{
setBackground(Color.white);
addMouseMotionListener(this);
addMouseListener(this);
}
public void update(Graphics g)
{
super.update(g);
paintComponent(g);
}
public void paintComponent(Graphics g)
{ super.paintComponent(g);
g.drawLine(mousex1,mousey1,mousex2,mousey2);
};
public void mousePressed(MouseEvent event){
if(event.getModifiers()==InputEvent.BUTTON1_MASK){
mousex1=event.getX();
mousey1=event.getY();
}
}
public void mouseClicked(MouseEvent event){
}
public void mouseReleased(MouseEvent event){
}
public void mouseEntered(MouseEvent event){
}
public void mouseExited(MouseEvent event){
}
public void mouseDragged(MouseEvent event){
if(event.getModifiers()==InputEvent.BUTTON1_MASK){
mousex2=event.getX();
mousey2=event.getY();
repaint();
}
}
public void mouseMoved(MouseEvent event){
}
}public class gra {
/** Creates a new instance of gra */
public gra() {
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
JFrame f=new JFrame("AWT");
myPanel mp=new myPanel();
f.add(mp);
f.setSize(600,400);
f.setLocation(100,100);
f.addWindowListener(
new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{System.exit(0);};
}
);
f.show();
}
}这段代码如何修改才能实现第二次画线时不把第一次画的线清除
解决方案 »
- SWING镶嵌HTML地图
- 没错 就只有两段代码 但是我不懂
- 如何设置程序运行的初始位置
- 弱弱的问一下: 我的 junit 4.0 怎么用啊?
- java应该如何学起
- 求救!哪位高人帮我解答一下,关于JSP+SQL SERVER 2000的编程问题
- 重大发现,java中的paint机制相当于C中的callback回调函数.
- MY_MY关于包的使用问题.我在CSDN上看了一天了,也不知道怎么会事!大侠们帮忙改一下!!!!!!
- 各位朋友,我要进行动态网页设计用到关于和数据库进行的一些操作,那位老兄有这些例子给我发一个,对了,在什么地方可以下载jdbc?
- switch case的条件为常量仍然报错不是常量
- 如何比较两个日期的大小,谢谢!
- 问一个关于ClassLoader层次的问题
你可以把所有要显示的线段坐标以数组的方式
放到一个Vector或一个ArrayList中
重画的时候取出来重新画就可以了
但是它不能直接调用,所以不知道怎么办?
因为我想做一个画图板,要画其他图形,所以用数组存好像不太行
可以把那两个super都注释掉
不用调用
不过这样会有另外的问题
你可以看一下
其实你可以把要画的图形生成以后加入到Vec中
类似如下:Line2d.float fl=new Line2d.float(……);
然后把fl加入到vec中
画的时候取出来再画
如果想清除原先的图 就在paintComponent里调用super.paintComponent();
如果不调用的话图是不会被清除的