2

我正在做一个学校项目,需要布局方面的帮助,因为它正在做一些时髦的事情。

我只需要南面板的帮助。南面板的组织方式如下:

           JRadioButton JLabel1 JLabel2
           JRadioButton JLabel1 JLabel2
    JLabel3--------JTextField----------JButton

我尝试了以下方法:

  1. 将南 JPanel 设置为 3 行的网格布局
  2. 另一个 JPanel 也带有一个网格布局,其中 3 行添加到网格布局的第一行。
  3. 对第二行和第三行重复 #2。第二行有 3 行乘 3 列。
  4. 在适当的行/列中添加了组件。

没有按照我需要的方式格式化。我尝试了一些我不记得的其他技术。有什么建议么?谢谢你。这是南面板应该是什么样子的图片:http ://www.freeimagehosting.net/image.php?d14a73db5e.jpg

它从“开始日期...”开始

4

4 回答 4

3

为此创建一个新的JPanel并使用组布局

像这样 http://img163.imageshack.us/img163/1403/capturadepantalla201001bo.png

使用组布局允许您指定将进入水平组的组件和将进入垂直组的组件。

c1, c2, c3
c4, c5, c6
panel[ c7, c8, c9 ]

这是我布局上面的图像的方式:

    // Layout Horizontal components 
    layout.setHorizontalGroup(
        layout.createSequentialGroup()
        .addGroup( 
            layout.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addComponent( c1 )
            .addComponent( c4 )
        ).addGroup(
            layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                .addComponent( c2 )
                .addComponent( c5)
        ).addGroup(
            layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                .addComponent( c3 )
                .addComponent( c6 )
        )

    );

    // Layout vertical components 
    layout.setVerticalGroup(
        layout.createSequentialGroup()
        .addGroup( 
             layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
             .addComponent( c1 )
             .addComponent( c2 )
             .addComponent( c3 )
         ).addGroup(
             layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                 .addComponent( c4 )
                 .addComponent( c5 )
                 .addComponent( c6 ) 
        )
    );

    southPanel.add( panel ); // the start-end dates
    southPanel.add( bookIt, BorderLayout.SOUTH ); // the enter your name... 

试试看。

于 2010-01-16T02:04:58.047 回答
1

我将为南 JPanel 做的是将其设为 1x3 网格,然后将第一行的三个组件添加到水平 Box 中并将其添加到网格中,然后将第二行的三个组件添加到另一个水平 Box 中并添加它到网格,然后将第三行的三个组件变成一个 3x1 的网格并将其添加到网格中。然后,您可以通过添加各种胶水和支柱组件来调整前两行所需的确切外观。

我通过将 jpanels 或 Boxes 放在具有不同布局的其他布局中来实现我的大部分布局。这使您可以很好地控制您想要的内容,并允许您一次构建它。

于 2010-01-16T02:06:40.943 回答
0

似乎您想要一个 GridLayout 与 3 columns,而不是 3 rows用于底部面板。

在您包含的链接的图像中,文本字段比 JLabel 或按钮宽。您可能想尝试使用GridBagLayout

于 2010-01-16T02:05:20.930 回答
0

最近我偶然发现了 MigLayout,我将尝试在我的下一个大学项目中使用它,我建议你试一试,它看起来真的很酷很简单。

于 2010-01-16T02:13:26.547 回答