【发布时间】:2014-05-19 13:40:06
【问题描述】:
我是 Java 新手,正在开发一个在 JPanel 中使用图形的小程序。
在一个类中,我实现了 actionListener 以在单击按钮时执行操作。
public void actionPerformed (ActionEvent e)
{
JButton source = (JButton) e.getSource();
if (source == popDensityButton)
{
GraphicsDisplay.population ();
}
在扩展JPanel的GraphicsDisplay类中,代码如下:
public void paint (Graphics g)
{
g.drawImage (world_map, 5, 40, this);
update (g);
}
public void update (Graphics g)
{
if (population == true)
{
g.drawString ("STRING", 100, 100); // used to see if the button works
}
}
public static void population ()
{
population = true;
}
当点击 popDensityButton 时,什么也没有发生。 “STRING”仅在调整窗口大小时显示。
解决此问题的最佳方法是什么? 我感觉这与调用 repaint() 方法有关,因为在调整窗口大小时面板会自动重新绘制。
【问题讨论】:
标签: button graphics jpanel paint repaint