0
我对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()方法有关,因为面板在调整窗口大小时会自动重新绘制。
我试着在GraphicsDisplay.population()之后添加repaint()。没有改变:“STRING”仅在窗口被调整大小时显示。还有什么需要添加的?是否需要在GraphicsDisplay类中使用repaint()? – user3652801
就我所见,字符串应该显示在'source'中。如果是这样,那么你必须编写'source.repaint()'。 –