【发布时间】:2014-05-04 14:39:01
【问题描述】:
过去两天我一直在尝试在我的JPanel 上绘制对象。当我试图在JPanel 上绘制对象时,代码正在运行,而它没有放在JTabbedPane 中。但现在对我来说很忙。请帮助我。
用MouseMotionListener注册JPanel
panel[i].addMouseMotionListener(this);
将面板添加到JTabbedPane
tp.addTab("Tab1",panel[i]);
mouseDragged事件代码如下
public void mouseDragged(MouseEvent e) {
x = e.getX();
y = e.getY();
repaint();
}
鼠标释放事件
public void mouseReleased(MouseEvent e) {
x1 = e.getX();
y1 = e.getY();
repaint();
}
paint 函数(必须自动调用)有以下几行
public void paint( Graphics g )
{
super.paint(g);
// I even tried to add the following line but it didn't work too
/// g=panel[tp.getSelectedIndex()].getGraphics();
Graphics2D gtd=(Graphics2D) g;
gtd.fillOval(x, y, x1-x, y1-y); //x1-x: For width of Oval; y1-y: for height
}
【问题讨论】:
-
发布MCVE (link)。
-
不要覆盖
paint,覆盖paintComponent。
标签: java swing graphics mouselistener