JFrame 不显示 Jpanel 的权利
JFrame doesn't show the Jpanel's right
我正在使用大小为 800x600 的 JFrame。
我想做的是:
黑色面板内部还有 2 个面板,每个面板大小为 300x300。
结果是黑色面板在左侧(如预期的那样),红色面板在中间,框架和面板之间的顶部有一个间隙。另外,如果我移除黑色面板,右侧面板将填满整个框架...
这是代码:
//create the left part of the screen
JPanel leftPanels = new JPanel();
leftPanels.setLayout(new GridLayout(2,1));
leftPanels.setSize(new Dimension(300,600));
// just to illustrate the 2 panels inside of the black panel.
//leftPanels.add(new JPanel());
//leftPanels.add(new JPanel());
//create the right part
JPanel rightPanel = new JPanel();
rightPanel.setSize(new Dimension(500,600));
rightPanel.setBackground(Color.red);
this.add(leftPanels);
this.add(rightPanel);
this.validate();
this.repaint();
有解决这个问题的简单方法吗?
我还在 JFrame 上尝试了 Gridlayout,但这给了我 2 个 400X600 的面板
如果您尝试相对设置面板,请将框架布局设置为空
this.getContentPane().setLayout(null);
那你就绝对可以安放了。
更多信息:Doing Without a Layout Manager (Absolute Positioning)
首先,像这样使用 FlowLayout
setLayout(new FlowLayout(FlowLayout.LEFT));
其次,请为 JPanel 使用 setPreferedSize 而不是 setSize
leftPanels.setPreferredSize(new Dimension(300,600));
我不知道 cashRegister 是什么,但看起来您没有将 rightPanel 添加到 JFrame,因此请务必添加它。
尝试将框架的布局设置为null
。然后使用setBounds
定位面板。
我正在使用大小为 800x600 的 JFrame。 我想做的是:
黑色面板内部还有 2 个面板,每个面板大小为 300x300。
结果是黑色面板在左侧(如预期的那样),红色面板在中间,框架和面板之间的顶部有一个间隙。另外,如果我移除黑色面板,右侧面板将填满整个框架...
这是代码:
//create the left part of the screen
JPanel leftPanels = new JPanel();
leftPanels.setLayout(new GridLayout(2,1));
leftPanels.setSize(new Dimension(300,600));
// just to illustrate the 2 panels inside of the black panel.
//leftPanels.add(new JPanel());
//leftPanels.add(new JPanel());
//create the right part
JPanel rightPanel = new JPanel();
rightPanel.setSize(new Dimension(500,600));
rightPanel.setBackground(Color.red);
this.add(leftPanels);
this.add(rightPanel);
this.validate();
this.repaint();
有解决这个问题的简单方法吗?
我还在 JFrame 上尝试了 Gridlayout,但这给了我 2 个 400X600 的面板
如果您尝试相对设置面板,请将框架布局设置为空
this.getContentPane().setLayout(null);
那你就绝对可以安放了。 更多信息:Doing Without a Layout Manager (Absolute Positioning)
首先,像这样使用 FlowLayout
setLayout(new FlowLayout(FlowLayout.LEFT));
其次,请为 JPanel 使用 setPreferedSize 而不是 setSize
leftPanels.setPreferredSize(new Dimension(300,600));
我不知道 cashRegister 是什么,但看起来您没有将 rightPanel 添加到 JFrame,因此请务必添加它。
尝试将框架的布局设置为null
。然后使用setBounds
定位面板。