我有一个带有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/