首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JFrame以不同的大小显示

JFrame以不同的大小显示
EN

Stack Overflow用户
提问于 2017-05-19 22:50:50
回答 2查看 281关注 0票数 0

我有以下代码

代码语言:javascript
运行
复制
package trtyhard;    

import javax.swing.JFrame;

public class TrtyHard {

     public static void main(String[] args) {

        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                JFrame frame = new JFrame("TryHard");
                //frame.setSize(700, 500);
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setResizable(false);
                frame.setSize(700, 500);
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);               
            }
        });          

    }       

}

有时JFrame会以不同的大小出现。有时底部有10毫米,有时右侧有5-7毫米。我怎么才能修复它?

EN

回答 2

Stack Overflow用户

发布于 2017-05-19 23:37:18

除了确保图形用户界面是在Event Dispatch Thread EDT)上创建的之外,还可以尝试按如下方式重新构建代码:

代码语言:javascript
运行
复制
JFrame frame = new JFrame("TryHard");
//frame.setSize(700, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setSize(700, 500);
frame.setLocationRelativeTo(null);
frame.setVisible(true);

重点是在对frame执行setSize()或pack()之前设置frame属性。

有关EDT的更多信息,请阅读Swing教程Initial Thread中的部分。

票数 2
EN

Stack Overflow用户

发布于 2017-05-19 23:41:57

JFrame类有setBounds(x,y,width,height)方法。你可以试试。https://docs.oracle.com/javase/7/docs/api/java/awt/Window.html#setBounds(int,%20int,%20int,%20int)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44073105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档