【发布时间】:2017-05-03 23:36:03
【问题描述】:
这是一个应用程序的片段,其中有几个标签挂在 JTabbedPanel 上:-
我已经按照以下标准方式使用代码生成了图像:-
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.drawImage(device.getVisualisation(), 0, 0, null);
}
因此,每当应用程序 gui 发生问题时,都会调用 paintComponent 方法并显示图像。这很正常。
如果选项卡焦点发生变化,或者鼠标如您预期的那样经过选项卡,也会发生此绘制事件。问题是这需要几秒钟,因为生成图形需要很多时间。这种延迟是不可避免的,我接受它。当 gui 系统完成它必须做的事情时,您还会获得许多绘制事件。通常这没问题,但由于处理延迟,gui 在 10 秒内停止 /flashes /updates 几次。
我认为我可以通过仅从 gui 上某处的“REFRESH”JButton 手动调用 repaint() 来解决此问题。但是,如果您使用选项卡,我将无法关闭自动重绘。如何仅通过按下按钮而不是自动绘制组件?
【问题讨论】:
标签: java swing user-interface graphics