在Swing中垂直最大化窗口

时间:2013-01-01 05:58:07

标签: java swing

当通过将窗口的顶部或底部边缘分别拖动到屏幕的顶部或底部而垂直最大化我的win7 64位机器上的窗口时,应用程序变得无响应并显示黑色部分或其他一些视觉失真。通过双击边缘垂直最大化或常规最大化时不会发生。

由于它发生在Java Tutorial程序中(我随机选择了一些,并且它们都是这样做的),这是Swing中的某种错误 - 或者我能做些什么?

2 个答案:

答案 0 :(得分:2)

此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);   
            }   
        });   
    }   
}  

问题似乎是没有将resize事件传递给JFrame的内容窗格。 JFrame的paint方法确实获得了新的大小,但它内部没有任何内容。问题不会出现在1.6版本下(无法在Linux下测试,因为显然,自动调整大小行为对Windows来说是独一无二的。)

有关更详细的讨论,请参阅http://www.coderanch.com/t/601457/GUI/java/Vertically-Maximizing-Window-Swing。我已经在bugs.sun.com上提交了一份关于此的错误报告。

答案 1 :(得分:0)

我正在使用i7-2600k,ati radeon 6800和win7 64bit的系统,我从来没有遇到任何此类问题。您使用的是最新版本的Java吗?我做了以下计划。它在我的系统上运行正常,没有任何问题。

下载JPositioner的链接:JPositioner

请检查并告诉我,即使使用JPositioner,您是否也面临同样的问题。