-1

所以我有一个嵌入到 JFrame 中的 java.applet.Applet。小程序使用 java.awt.Canvas 进行绘图。代码对我来说会很多,并且没有“小”示例,但至少有一张图片:

在此处输入图像描述 好的,在上面,小程序不断地在画布上绘制。按下切换按钮时隐藏底部的 JTextArea,未按下切换按钮时显示。

但是,每次我显示/隐藏 TextArea 时,Applet/Canvas 都会闪烁。每次显示/隐藏 TextArea 时都会调整 JFrame 的大小。

现在我用于显示/隐藏的小片段看起来像:

public void setConsoleVisible(boolean Visible) {
    this.ScrollPane.setVisible(Visible); //Show/Hide the JTextArea.
    frame.pack(); //Pack the JFrame to resize it.
    frame.setSize(frame.getWidth(), frame.getHeight() + 1); //resize the frame by 1px.
}

当它调整大小并显示/隐藏 JTextArea 时,如何阻止它闪烁?我的 Canvas/Applet 已经是双缓冲的。

4

1 回答 1

1

您正在绘制的区域可能小于可见区域。这样一些垃圾就被涂上了造成闪烁。为什么你只将帧大小调整一个像素?尝试删除,

frame.setSize(frame.getWidth(), frame.getHeight() + 1);
于 2013-05-13T04:14:29.240 回答