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

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


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

绘制圆,但是JDialog也被错误绘制。我正在使用repaint()调用来绘制圆。在我最小化和最大化窗口之后,绘画会产生所需的结果:



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

最佳答案

确保

super.paintComponent();


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

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

10-12 20:46