单击时按钮不显示图像

时间:2014-05-19 13:40:07

标签: button graphics jpanel paint repaint

我是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()方法有关,因为在调整窗口大小时面板会自动重新绘制。

1 个答案:

答案 0 :(得分:0)

仅在必要时调用update(Graphics g)paint(Graphics g)等方法以节省计算时间。是的,在GraphicsDisplay.population()之后,您必须致电repaint()以查看新结果。