当通过将窗口的顶部或底部边缘分别拖动到屏幕的顶部或底部来垂直最大化我的 win7 64 位机器上的窗口时,应用程序变得无响应并显示黑色部分或其他一些视觉失真。通过双击边缘垂直最大化或常规最大化时不会发生。
由于它发生在 Java 教程程序中(我随机选择了一些,他们都这样做了),这是 Swing 中的某种错误 - 还是我能做些什么?
此 SSCCE 显示了 Windows 7(64 位和 32 位版本)下的问题,使用 JDK 1.7.0_07 编译,运行 JRE 1.7.0_07:
public class Expander extends javax.swing.JFrame
{
public Expander()
{
this.setBounds(0, 0, 300, 300);
}
public static void main(String args[])
{
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
new Expander().setVisible(true);
}
});
}
}
问题似乎是没有调整大小事件传递到 JFrame 的内容窗格。JFrame 的paint 方法确实获得了新的大小,但它里面什么都没有。在 1.6 版下不会出现问题(无法在 Linux 下测试它,因为自动调整大小的行为显然是 Windows 独有的)。
有关更详细的讨论,请参阅http://www.coderanch.com/t/601457/GUI/java/Vertically-Maximizing-Window-Swing 。我已在 bugs.sun.com 上提交了一份错误报告。
我使用的系统是 i7-2600k、ati radeon 6800 和 win7 64bit,我从来没有遇到过这样的问题。您使用的是最新版本的 Java 吗?我做了以下程序。它在我的系统上运行良好,没有任何问题。
JPositioner 的下载链接:JPositioner
请检查并让我知道您是否面临同样的问题,即使使用 JPositioner。