我正在尝试构建一个简单的布局,其中包含:
** first row is consisted of : 3 JComboboxes.
** second row of one JTextArea
** third row of 3 buttons.
但是,我得到了这种奇怪的布局:
如何让一切看起来没有所有这些隐藏的空白,并为组件设置合理的高度(由于某种原因,它似乎占据了整个框架)?
我的代码:
mainFrame.setSize(500,600);
mainFrame.setLayout(new GridLayout(0,1,0,0));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
JPanel datePanel = new JPanel(new GridLayout(1,3,0,0));
String[] petStrings = { "Bird", "Cat", "Dog", "Rabbit", "Pig" };
JComboBox petList = new JComboBox( petStrings );
JComboBox petList2 = new JComboBox( petStrings );
JComboBox petList3 = new JComboBox( petStrings );
datePanel.add( petList );
datePanel.add( petList2 );
datePanel.add( petList3 );
mainFrame.add( datePanel );
JPanel controlPanel = new JPanel();
controlPanel.setLayout(new FlowLayout());
final JTextArea commentTextArea = new JTextArea("",7,25);
JScrollPane scrollPane = new JScrollPane(commentTextArea);
controlPanel.add(scrollPane);
mainFrame.add(controlPanel);
JPanel buttonsPanel = new JPanel( new GridLayout(0,1,10,10) );
buttonsPanel.add( new JButton("x") );
buttonsPanel.add( new JButton("y") );
buttonsPanel.add( new JButton("z") );
mainFrame.add( buttonsPanel );
答案 0 :(得分:1)
但是,我得到了这种奇怪的布局:
您正在使用GridLayout,这就是GridLayout的功能。它使网格中的每个单元格大小相同。
您需要使用其他布局管理器或布局管理器组合。
这个框架的默认BorderLayout可能适合你:
或者,如果您不想嵌套布局,那么您可以使用GridBagLayout。
我们无法为您提供准确的解决方案,因此您需要与不同的布局管理器一起玩。阅读布局管理器上的Swing教程,了解更多信息和工作示例,以帮助您入门。