我在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();
问题是这可以在第一个组件之后加载另一个组件,但是当我第一次加载我的应用程序时,我仍然需要调整它的大小。
我很高兴听到解决此问题的任何更好的解决方案。
提前感谢。
您可以使用:
pack();
这将使此窗口的大小适合其子组件的首选大小和布局。如果窗口和/或其所有者尚不可显示,则在计算首选大小之前,都应使其可显示。在计算preferredSize之后,将验证Window。
或者您可以使用
setSize()
要调整此组件的大小,使其具有宽度,宽度和高度。
初始化主用户界面后,最后一次致电setVisible