Java 如何对齐JPanel中3个JLabel的底部
我正在尝试对齐包含图像的3个JLabel的底部。3个JLabel被放在一个大JPanel中。 但是由于某种原因,如果我应用示例代码(为按钮提供的代码),它在JLabels或JPanel上不起作用。 以下是Oracle网站上的示例代码:Java 如何对齐JPanel中3个JLabel的底部,java,swing,user-interface,alignment,Java,Swing,User Interface,Alignment,我正在尝试对齐包含图像的3个JLabel的底部。3个JLabel被放在一个大JPanel中。 但是由于某种原因,如果我应用示例代码(为按钮提供的代码),它在JLabels或JPanel上不起作用。 以下是Oracle网站上的示例代码: button1.setAlignmentY(Component.BOTTOM_ALIGNMENT); button2.setAlignmentY(Component.BOTTOM_ALIGNMENT); 知道哪里出了问题吗?我可以发送我的代码,但我想这可能会使它
button1.setAlignmentY(Component.BOTTOM_ALIGNMENT);
button2.setAlignmentY(Component.BOTTOM_ALIGNMENT);
知道哪里出了问题吗?我可以发送我的代码,但我想这可能会使它太混乱,对于这里的大多数人来说,这可能是一个简单的答案,也可能是一个简单的问题
提前谢谢
编辑:
public class LayoutOef_01 extends JFrame{
JPanel paneel;
JLabel label1, label2, label3;
ImageIcon pic1, pic2, pic3;
Border panelBord, labelBord;
public Layout_01(String titel){
super(titel);
paneel = new JPanel();
pic1 = new ImageIcon("images/simon1.png");
pic2 = new ImageIcon("images/simon2.png");
pic3 = new ImageIcon("images/simon3.png");
label1 = new JLabel(pic1);
label2 = new JLabel(pic2);
label3 = new JLabel(pic3);
paneel.add(label1);
paneel.add(label2);
paneel.add(label3);
panelBoord = BorderFactory.createLineBorder(Color.WHITE, 30);
paneel.setBorder(panelBord);
paneel.setBackground(Color.WHITE);
labelBoord = BorderFactory.createLineBorder(Color.BLACK, 2);
label1.setBorder(labelBord);
label2.setBorder(labelBord);
label3.setBorder(labelBord);
this.getContentPane().add(paneel);
this.pack();
}
public static void main(String[] args) {
Layout_01 lay1 = new LayoutOef_01("Layout_01");
lay1.setVisible(true);
}
}
因此,我尝试将以下代码放在上面代码的不同位置,但没有任何变化:
label1.setAlignmentY(Component.BOTTOM_ALIGNMENT);
label2.setAlignmentY(Component.BOTTOM_ALIGNMENT);
label3.setAlignmentY(Component.BOTTOM_ALIGNMENT);
检查此示例:
记住:
-在面板上设置布局。
-在按钮上设置对齐
-将按钮添加到面板。添加代码。这可能是
Glue
的问题,也可能是BoxLayout
配置为垂直而非水平堆叠所有内容。您的代码怎么会太混乱?测试这一点需要大约20行代码。如果它适用于按钮,它应该适用于标签。发布你的文章,说明问题所在。没有足够的stackflow rep在提问后这么快回答我自己的问题,但BoxLayout和示例确实解决了问题。没有得到底部对齐链接是错误的