java - 在 JFrame 上对齐 JButton 和 JLabel

标签 java swing jframe jbutton jlabel

我正在尝试创建一个 JFrame,其中我希望按钮(选择设备)位于顶部,文本消息( Activity )以标签形式位于底部。我无法做到这一点,而且他们都在同一条线上,彼此相邻。

    JFrame f= new JFrame("AutoV");
    f.setVisible(true);
    f.setSize(600,400);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JPanel p=new JPanel();
    p.setBackground(Color.gray);

    JButton b=new JButton("Select the Device");
    JLabel lab=new JLabel("Active");
    lab.setVerticalAlignment(SwingConstants.BOTTOM);

    //p.add(b);
    p.add(lab);
    p.setBorder(BorderFactory.createLineBorder(Color.black));

    f.add(p);
    Dimension dim1 = Toolkit.getDefaultToolkit().getScreenSize();
    f.setLocation(dim1.width/2-f.getSize().width/2, dim1.height/2-f.getSize().height/2);

最佳答案

您应该查找不同的布局。许多组件的默认布局是 FlowLayout,它只是水平对齐所有元素,并且尽可能小。将面板布局设置为框或网格布局应该可以解决问题。

https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

关于java - 在 JFrame 上对齐 JButton 和 JLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33242427/

相关文章:

java - 将 "On Change"监听器放在 jFormattedTextField 上

java - 如何在java swing中的jframe中添加图像?

java - JDialog WindowOpened 事件仅触发一次

Java流创建对象并比较

java - 无法解析 ZXing java 项目的导入

java - Java 中的 Varargs 到 ArrayList 问题

c# - winforms 面板与 java swing 面板

java - 一个接一个地延迟显示 JLabel 的问题

java - 向使用 java 图形的 contentPane 添加按钮

java - Hibernate 通过查询进行多对多数据检索