我使用的是大小为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的面板
答案 0 :(得分:1)
首先,像这样使用FlowLayout
setLayout(new FlowLayout(FlowLayout.LEFT));
其次,请为JPanels使用setPreferedSize而不是setSize
leftPanels.setPreferredSize(new Dimension(300,600));
我不知道什么是cashRegister,但看起来你没有将rightPanel添加到JFrame,所以一定要添加它。
答案 1 :(得分:0)
尝试将框架的布局设置为null
。然后使用setBounds
定位面板。
答案 2 :(得分:-1)
如果您尝试将面板相对设置为另一个,请将框架布局设置为null
this.getContentPane().setLayout(null);
然后你就可以绝对放置它们了。 有关详细信息:Doing Without a Layout Manager (Absolute Positioning)