我无法理解我的应用程序的行为。我想创建一个简单的窗口(1000x700px),分为两部分(分别为250px和750px宽度)。我尝试了以下代码:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Example extends JFrame
{
private static final long serialVersionUID = 1L;
public Example()
{
this.setSize(1000, 700);
this.setTitle("Example");
this.setResizable(false);
this.setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0));
JPanel navigation_panel_wrap = new JPanel();
JPanel content_panel_wrap = new JPanel();
navigation_panel_wrap.setPreferredSize(new Dimension(250, 700));
content_panel_wrap.setPreferredSize(new Dimension(750, 700));
content_panel_wrap.setBackground(Color.green);
navigation_panel_wrap.setBackground(Color.red);
this.getContentPane().add(navigation_panel_wrap);
this.getContentPane().add(content_panel_wrap);
}
public static void main(String[] args)
{
Example example = new Example();
example.setVisible(true);
}
}
如您所见,我手动设置了布局管理器JFrame
(而FlowLayout
不是零水平和垂直间隙)。当然,我可以只使用and 而不是使用带有和 参数的方法,但我想了解. 当我运行我的应用程序时,我得到以下信息(没有绿色): BorderLayout
BorderLayout
add()
BorderLayout.EAST
BorderLayout.WEST
FlowLayout
JPanel
例如,如果我减小宽度content_panel_wrap
并将其设置为744px而不是750px,则一切正常。
所以问题是 - 这些奇怪的 6 个像素是什么?我不确定这个值对于所有操作系统都是恒定的,所以我想了解它的起源。