Java与布局
我想在创建网页时,自上而下使用类似于容器的jpanel,就像DIV标记一样?如果我使用BorderLayout,我只能有两个(北和南) 我想将不同的Java与布局,java,swing,jpanel,layout-manager,Java,Swing,Jpanel,Layout Manager,我想在创建网页时,自上而下使用类似于容器的jpanel,就像DIV标记一样?如果我使用BorderLayout,我只能有两个(北和南) 我想将不同的jbutton、jlabel和JTextFields放入每个jpanel中。这是我正在尝试的布局: Container1及其内容 Container2及其内容 Container3及其内容 谢谢你的帮助 编辑:我添加了部分代码,因为我不确定我是否做对了 JPanel container1, container2, container3; contai
jbutton
、jlabel
和JTextFields
放入每个jpanel中。这是我正在尝试的布局:
Container1及其内容
Container2及其内容
Container3及其内容
谢谢你的帮助
编辑:我添加了部分代码,因为我不确定我是否做对了
JPanel container1, container2, container3;
container1 = new JPanel();
container2 = new JPanel();
container3 = new JPanel();
container1.setLayout(new BoxLayout(container1, BoxLayout.Y_AXIS));
container2.setLayout(new BoxLayout(container2, BoxLayout.Y_AXIS));
container3.setLayout(new BoxLayout(container3, BoxLayout.Y_AXIS));
// lägg till komponenter till containers
container1.add(button1);
container2.add(button2);
container3.add(button3);
// lägg till containers till fönster
frame.add(container1);
frame.add(container2);
frame.add(container3);
当您将列数设置为1时,可以使用进行此操作。还有,当您使用页面布局或Y轴方向时,应该会产生这种效果 以下是BoxLayout的一些示例代码:
Container container = frame.getContentPane( );
frame.setLayout( new BoxLayout( container, BoxLayout.Y_AXIS ) );
JPanel panel1 = new JPanel( );
panel1.add( new JButton( "Button #1" ) );
frame.add( panel1 );
JPanel panel2 = new JPanel( );
panel2.add( new JLabel("Label #1") );
frame.add( panel2 );
请注意,布局是在框架的内容窗格上设置的,而不是直接在框架上设置的。如果您试图直接在JFrame上设置BoxLayout,将出现“BoxLayout无法共享”错误。听起来您需要使用布局管理器。这种特殊的布局管理器使垂直堆叠组件变得非常容易。网页元素的行为与
FlowLayout
的作用非常相似:在一行中显示所有内容(水平或垂直),如果没有足够的空间,则溢出到多行中。如果希望固定排列,请使用BoxLayout
但请注意,如果嵌套布局管理器,事情可能会变得更棘手。这是一个。BoxLayout听起来很有趣,但是JPanel会覆盖所有空间吗?如果我使用背景色,它会覆盖盒子中的每个空间吗?我正在尝试代码,但遇到了一些问题!我不应该在开始时使用它:frame.setLayout(newborderlayout());我是否应该这样放置框:container1.setLayout(newboxlayout(container1,BoxLayout.Y_轴));container2.setLayout(新的BoxLayout(container2,BoxLayout.Y_轴));我之间有很多空间。一个按钮在顶部,另一个按钮在底部!?我可以为盒子或面板设置一些尺寸吗?Container1和container2是的实例JPanel@3D-Krativ请在问题中编辑代码作为更新。@3D Krativ无需设置边界布局;我已经更新了我的答案来反映这一点。嗯,我需要使用容器类和getContentPane吗?我想这在第5版之后就没有必要了?