我是 Java Swing 的新手,我有一个奇怪的问题需要刷新我的JPanel
.
我创建一个静态的JPanel
我的框架中的组件,我从一个调用静态方法FileListenner
重新粉刷我的JPanel
public static void repaintPlan(JPanel f) {
f.paint(f.getGraphics());
f.revalidate(); // or validate
}
我的意思是,当我检测到文件内容发生变化时,我会计算新的坐标并重新绘制JPanel
(我创建一个类扩展自JPanel to define
PaintComponent()` 方法)
当我运行应用程序时,一切工作正常,并且当文件中的数据发生更改时重绘工作;但如果我用鼠标点击Jpanel
, the repaint()
方法不再起作用了。你能告诉我为什么点击后JPanel
,重画不行吗?
对不起,我的英语不好
提前致谢:)
编辑:感谢您的回复!但即使我使用repaint()
方法,同样的问题。我试图了解当我点击时会发生什么JPanel
。我应该在 Swing 中使用鼠标事件来解决这个问题吗?
1) 对于摇摆JComponents
有没有方法paintComponent()
, 方法paint()
适用于顶级容器(JFrame
, JDialog ...) 和AWT Components
2)不要使用getGraphics()
该方法创建了调用后的快照validate
, revalidate
, repaint
expired
3)你已经看过教程了2D 图形 http://docs.oracle.com/javase/tutorial/2d/index.html, 例子here http://www.java2s.com/Code/Java/2D-Graphics-GUI/Catalog2D-Graphics-GUI.htm
4)如果您有真正的问题,请编辑您的问题SSCCE http://sscce.org/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)