如何在加入其它控件的Frame中绘制自己想要的东西? 建立了一个Frame其中加入了一个Canvas,并且在Canvas中显示了图像,现在想要根据鼠标动作绘制一些线条,应该如何进行绘制(绘制后的线条显示在图像上)? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 添加鼠标监听,通过paint(Graphics g)实现 通过paint(Graphics g)实现?我继承了Canvas类,在其中的paint中写入了要绘制的线条,可是根本显示不出来。同样,继承了Frame类,在其中的paint中写入了要绘制的线条也不起作用。 简单的代码,你自己看看吧import java.awt.Canvas;import java.awt.Color;import java.awt.Graphics;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.event.MouseMotionListener;import javax.swing.JFrame;public class Test extends JFrame { public Test() { getContentPane().add(new MyCanvas()); setSize(200, 200); } class MyCanvas extends Canvas implements MouseListener, MouseMotionListener { int x1, y1, x2, y2; public MyCanvas() { setBackground(Color.white); addMouseListener(this); addMouseMotionListener(this); } @Override public void paint(Graphics g) { g.setColor(Color.red); g.drawLine(x1, y1, x2, y2); } public void mouseClicked(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mousePressed(MouseEvent e) { x2 = e.getX(); y2 = e.getY(); } public void mouseReleased(MouseEvent e) { } public void mouseDragged(MouseEvent e) { x1 = x2; y1 = y2; x2 = e.getX(); y2 = e.getY(); paint(getGraphics()); } public void mouseMoved(MouseEvent e) { } } public static void main(String[] args){ Test frame = new Test(); frame.setVisible(true); }} 关于java数组对象的声明 关于equals方法的一个程序问题 一个关于nextInt() 的问题 两种输入的比较?? [请教]为什么弹出菜单没有出来? 求:输入汉字,自动输出拼音简码的现成JAVA代码 apache commons logging 缺省使用jdk14logger, 设置jdk14logger的loglevel的问题 能介绍几本java入门的书吗!(有c++基础) 为什么Main Thread没有被notify? 请推荐一个DBConnectionPool吧 继续发份笔试题 想在下列代码上添加上新建与保存但是都失败了.求救下
我继承了Canvas类,在其中的paint中写入了要绘制的线条,可是根本显示不出来。同样,继承了Frame类,在其中的paint中写入了要绘制的线条也不起作用。
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;import javax.swing.JFrame;public class Test extends JFrame { public Test() {
getContentPane().add(new MyCanvas());
setSize(200, 200);
} class MyCanvas extends Canvas implements MouseListener, MouseMotionListener {
int x1, y1, x2, y2; public MyCanvas() {
setBackground(Color.white);
addMouseListener(this);
addMouseMotionListener(this);
} @Override
public void paint(Graphics g) {
g.setColor(Color.red);
g.drawLine(x1, y1, x2, y2);
} public void mouseClicked(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mousePressed(MouseEvent e) {
x2 = e.getX();
y2 = e.getY();
} public void mouseReleased(MouseEvent e) { } public void mouseDragged(MouseEvent e) {
x1 = x2;
y1 = y2;
x2 = e.getX();
y2 = e.getY();
paint(getGraphics());
} public void mouseMoved(MouseEvent e) { }
}
public static void main(String[] args){
Test frame = new Test();
frame.setVisible(true);
}
}