如何在BoxLayout中居中的JLabel中居中JButtons



我是Java GUI编程的新手,对BoxLayout有一个奇怪的问题:我有一个JLabelIcon。标签上添加了两个JButtons。CCD_ 5从CCD_ 8被放置在CCD_ 7的CCD_。现在我希望这两个JButtons总是在JLabel的中心,即使当我调整JFrame的大小时也是如此。对于setAlignmentX(),J按钮在水平方向居中,但对于垂直方向,setAlignmentY()没有解决方案。

这是代码:

package footballQuestioner;
import java.awt.BorderLayout;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Houdini {
    public static void main(String[] args) {
        JFrame frame = new House();
    }
    }
    class House extends JFrame {
    private JLabel label = new JLabel(
            new ImageIcon(
                    "C:\Users\laudatio\Documents\Java\MyProject\src\footballQuestioner\footballfield.jpg")
            );
    private JButton one=new  JButton("one");
    private JButton two=new JButton("two");

    public House() {

        label.setLayout(new BoxLayout(label, BoxLayout.Y_AXIS));
        label.add(one);
        label.add(two);
        one.setAlignmentX(CENTER_ALIGNMENT);
        one.setAlignmentY(CENTER_ALIGNMENT);
        two.setAlignmentX(CENTER_ALIGNMENT);
        two.setAlignmentY(CENTER_ALIGNMENT);

        setLayout(new BorderLayout());
        setLocation(300, 500);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setResizable(true);
        add(label,BorderLayout.CENTER);
        pack();
        setVisible(true);

    }
}

请帮忙!:-(((

但是对于垂直方向没有setAlignmentY()的解决方案。

在两个组件前后使用"胶水"。有关更多信息和示例,请参阅Swing教程中关于如何使用长方体布局的部分。

尽管MadProgrammers评论使用GridBagLayout是一个更容易的解决方案,但了解"胶水"one_answers"支柱"可能有助于自定义BoxLayout的布局。

相关内容

  • 没有找到相关文章

最新更新