java - 从 JDialog 返回时出现意外结果

标签 java swing repaint

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

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

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

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

enter image description here

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

最佳答案

确保

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

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

关于java - 从 JDialog 返回时出现意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18674249/

相关文章:

java - 尝试从 Java 和 NetBeans 中的 ConfigWindow 在 MainWindow 中设置配置变量

java - 当温度更新时更新java中gui上的jlabel温度

hover - 仅限 Opera 的错误 : CSS hover menus leftover repaint bug - workaround?

java - 包含hadoop/*-common.jar仍然是 “java.lang.ClassNotFoundException:org.apache.hadoop.conf.Configuration”

java - 如何在应用程序中使用按钮来显示手机的联系人列表

java - 如何在 jtable 标题中添加复选框,以便只有我可以根据用户的意愿调用打印选中的列?

java - 访问超出整数范围的字符串字符

java - 如何使 JFormattedTextField 使用 $1.55,但将值存储为整数 155?

java - 保留java应用程序的单例实例

java - 更改变量时重绘不起作用