【问题标题】:Button Not Displaying Image When Clicked单击时按钮不显示图像
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

    • 我尝试在 GraphicsDisplay.population() 之后添加 repaint()。没有任何改变:“STRING”仅在调整窗口大小时显示。还有什么需要补充的吗? GraphicsDisplay类中是否需要使用repaint()?
    • 据我所见,字符串应该显示在source中。如果是这样,那么你必须写source.repaint()
    猜你喜欢
    • 2012-04-28
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-28
    相关资源
    最近更新 更多