我是Java的新手,正在开发一个在JPanel中使用图形的applet。
在一个类中,我已经实现了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()方法有关,因为在调整窗口大小时面板会自动重新绘制。
答案 0 :(得分:0)
仅在必要时调用update(Graphics g)
和paint(Graphics g)
等方法以节省计算时间。是的,在GraphicsDisplay.population()
之后,您必须致电repaint()
以查看新结果。