我在JFrame中加载组件时遇到问题。在重新确定窗口之前,该组件不会出现。我搜索了这个问题并找到了一个解决方案:
Thread repainter = new Thread(new Runnable() {
@Override
public void run() {
while (true) { // I recommend setting a condition for your panel being open/visible
frame.repaint();
try {
Thread.sleep(30);
} catch (InterruptedException ignored) {
}
}
}
});
repainter.setName("Panel repaint");
repainter.setPriority(Thread.MIN_PRIORITY);
repainter.start();
问题是这可以在第一个组件之后加载另一个组件,但是当我第一次加载我的应用程序时,我仍然需要调整它的大小。
我很高兴听到解决这个问题的更好解决方案。
提前致谢。
答案 0 :(得分:1)
你可以使用:
pack();
它会使此窗口的大小适合其子组件的首选大小和布局。如果窗口和/或其所有者尚不可显示,则在计算首选大小之前,两者都可显示。在计算preferredSize后,将验证窗口。
或者您可以使用
setSize()
调整此组件的大小,使其具有宽度宽度和高度。
答案 1 :(得分:1)
答案 2 :(得分:1)
在初始化主要用户界面后,最后致电setVisible