我有一个 JFrame,其中有一个 JPanel。这个JPanel本质上是一个绘图面板。 我正在显示一个 JDialog,用于输入各种参数,例如绘制圆的半径和位置。 为了显示 JDialog 我正在使用:
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
dialog.setVisible(true);
}
});
当用户按下jdialog上的绘图按钮时,我将其处置(dialog.dispose();),并在处置后立即根据用户在Jdialog中输入的参数绘制圆圈。
Circle 被绘制,但 JDialog 也被错误地绘制。我正在使用 repaint() 调用来绘制圆。在我最小化和最大化窗口后,这幅画给出了所需的结果:
我是否以错误的方式关闭了对话框?
最佳答案
确保
super.paintComponent();
在 Swing 中进行自定义绘制时重写 paintComponent
时会调用 。此调用将正确绘制自定义绘制区域。如果没有此调用,背景组件将保持可见
关于java - 从 JDialog 返回时出现意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18674249/