0

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

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

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

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

在此处输入图像描述

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

4

1 回答 1

2

确保

super.paintComponent();

paintComponent在 Swing 中进行自定义绘制时覆盖时调用。此调用将正确绘制自定义绘制区域。没有这个调用,背景组件将保持可见

于 2013-09-07T14:33:13.297 回答