这个是直接在JFrame上的我想改成JFrame 上加一个JPanel然后在JPanel上画画
package test;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class TestTest extends JFrame { int x1, y1, x2, y2; public TestTest() { setVisible(true); setSize(300, 300); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0);
}
}); addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { x1 = e.getX(); y1 = e.getY();
}
}); addMouseMotionListener(new MouseMotionAdapter() { public void mouseDragged(MouseEvent e) { x2 = e.getX();
y2 = e.getY();
repaint(); }
});
} public void paint(Graphics g) { g.drawLine(x1, y1, x2, y2); x1 = x2; y1 = y2; } public static void main(String args[]) { new TestTest();
}
}
package test;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class TestTest extends JFrame { int x1, y1, x2, y2; public TestTest() { setVisible(true); setSize(300, 300); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0);
}
}); addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { x1 = e.getX(); y1 = e.getY();
}
}); addMouseMotionListener(new MouseMotionAdapter() { public void mouseDragged(MouseEvent e) { x2 = e.getX();
y2 = e.getY();
repaint(); }
});
} public void paint(Graphics g) { g.drawLine(x1, y1, x2, y2); x1 = x2; y1 = y2; } public static void main(String args[]) { new TestTest();
}
}
解决方案 »
- java socket通信问题
- 用过NIO SOCKET 进来帮下忙 最多只能给100分了,HELP
- 求救:关于 控制按钮的问题! JS 和JSP相关
- 如何为MainWindow自定义消息?
- 一个换码符“\”的问题
- 大家都用什么工具做界面?现在需要用awt做一个界面,我用jdk快累死了,做得也不好看!郁闷...
- 请教如何编写clone()方法(解决马上给分)
- 路人甲大哥,请再指点
- 请教:该类编译后运行的输出是什么,为什么会有这样的结果???
- 关于Boolean对象的compareTo方法的一些疑惑
- C# 里Form对象 form = null 和 form.dispose的区别
- 大家一般在什么情况下会用switch结构呢
在 JPanel上绘图 就是重载 paintComponent方法!!然后在添加到Frame就可以了
this.add(panel,BorderLayout.CENTER);
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;import javax.swing.JFrame;
import javax.swing.JPanel;public class PaintTest extends JFrame{ private MyPanel jpanel = new MyPanel(); public PaintTest(){
setLayout(null);
Dimension size = new Dimension(500,400);
setLocation(200,100);
setSize(size);
jpanel.setPreferredSize(size);
jpanel.setLocation(0,0);
jpanel.setSize(size);
add(jpanel);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
setVisible(true);
} public static void main(String args[]){
new PaintTest();
} class MyPanel extends JPanel {
private int x1,y1,x2,y2;
public MyPanel(){
this.setBackground(Color.red);
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e){
x1 = e.getX();
y1 = e.getY();
}
});
addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e){
x2 = e.getX();
y2 = e.getY();
repaint();
}
});
}
@Override
public void paint(Graphics g){
this.setBackground(Color.red);
g.drawLine(x1,y1,x2,y2);
x1 = x2;
y1 = y2;
}
}
}