当我运行这个程序时,它会显示为一个空窗口,直到你全屏显示,然后它可以根据你的喜好调整大小,它为什么这样做/我如何停止它?
这个程序非常基本,只是一个菜单栏和两个面板分开。
public class SplitPane {
public static void main(String[] args) {
window view = new window();
}
private static class window extends JFrame {
public window() {
this.setSize(1000, 750);
this.setVisible(true);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//menubar is here, must lower code quantity for stack
//panels
//graph half
JPanel graphRep = new JPanel();
//Background colour - graphRep.setBackground(Color.RED);
graphRep.setVisible(true);
String graphTitle = "Textual Representation.";
Border graphBorder = BorderFactory.createTitledBorder(graphTitle);
graphRep.setBorder(graphBorder);
//text half
JPanel textRep = new JPanel();
textRep.setVisible(true);
String textTitle = "Graphical Representation.";
Border textBorder = BorderFactory.createTitledBorder(textTitle);
textRep.setBorder(textBorder);
//splitpane
JSplitPane splitPane = new JSplitPane();
splitPane.setSize(600, 750);
splitPane.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
splitPane.setOneTouchExpandable(true);
splitPane.setDividerSize(10);
splitPane.setDividerLocation(250);
splitPane.setLeftComponent(graphRep);
splitPane.setRightComponent(textRep);
this.add(splitPane);
}
}
1条答案
按热度按时间4xrmg8kj1#
在将构件添加到框架之前,要使框架可见。从未调用布局管理器,因此所有组件的大小都保持为(0,0),因此没有要绘制的内容。
在将所有组件添加到框架后,框架应可见。
代码应该是:
因此,每个组件都以适当的大小显示。不要硬编码size(),因为您不知道用户屏幕的大小。