从JDialog返回时出现意外结果

时间:2013-09-07 14:19:51

标签: java swing repaint

我有一个带有JPanel的JFrame。这个JPanel本质上是一个绘图板。 我正在显示一个JDialog来输入半径和位置等各种参数来绘制圆。 为了显示我正在使用的JDialog:

SwingUtilities.invokeLater(new Runnable()
{
    public void run()
    {
      dialog.setVisible(true);
    }
});

当用户按下jdialog上的绘图按钮时,我处理它(dialog.dispose();)并在处理后立即根据用户在Jdialog中输入的参数绘制圆圈。

Circle绘制,但JDialog也被错误地绘制。我正在使用repaint()调用来绘制Circle。在我最小化和最大化窗口之后,绘画给出了期望的结果:

enter image description here

我是否以错误的方式关闭了对话框?

1 个答案:

答案 0 :(得分:2)

确保

super.paintComponent();
在Swing中进行自定义绘制时覆盖paintComponent时会调用

。此调用将正确绘制自定义绘制区域。如果没有此调用,后台组件将保持可见