

我有以下代码
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毫米。我怎么才能修复它?
发布于 2017-05-19 23:37:18
除了确保图形用户界面是在Event Dispatch Thread EDT)上创建的之外,还可以尝试按如下方式重新构建代码:
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中的部分。
发布于 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)
https://stackoverflow.com/questions/44073105
复制相似问题