Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Swing布局问题_Java - Fatal编程技术网

Java Swing布局问题

Java Swing布局问题,java,Java,我使用方法“parent.addTab(child)”将子面板添加到父面板,并在子面板中添加了一个JLabel,但setBounds方法在子面板中不起作用。此JLabel将在一个固定位置显示。setBounds在父面板中工作正常。怎么办?您需要为子面板定义适当的布局管理器。例如,如果选择使用,则可以按如下方式安排标签显示在面板的中心: JTabbedPane parent = new JTabbedPane(); JPanel child = new JPanel(new BorderLayou

我使用方法“parent.addTab(child)”将子面板添加到父面板,并在子面板中添加了一个JLabel,但setBounds方法在子面板中不起作用。此JLabel将在一个固定位置显示。setBounds在父面板中工作正常。怎么办?

您需要为子面板定义适当的布局管理器。例如,如果选择使用,则可以按如下方式安排标签显示在面板的中心:

JTabbedPane parent = new JTabbedPane();
JPanel child = new JPanel(new BorderLayout());

// Create label with centrally aligned text (default is left).
JLabel label = new JLabel("Hello, World", JLabel.CENTER_ALIGNMENT);

// Add label to center of the child panel.
child.add(label, BorderLayout.CENTER);

// Add child panel as a tab within parent JTabbedPane.
// The child panel will expand to fit the size of the tab.
parent.addTab("My Tab", child);

对于更灵活的布局,考虑使用.

<代码> StimeSimule>代码>只适用于将它们的布局设置为<代码> NUL>代码>的容器。(或用于在桌面上移动帧。)

JPanel
的默认布局管理器是
FlowLayout
,它按水平顺序排列组件,并在当前内容已满时(如页面中的文本)放置到新行

使用
null
布局和
setBounds
布局GUI不是推荐的方法-它非常脆弱-太多取决于容器/框架的大小,桌面的大小、分辨率和字体设置很容易破坏布局

通读Swing教程的一节,了解哪些布局管理器可以帮助您完成所需的任务