gpt4 book ai didi

java - BoxLayout.Y_AXIS 在 Swings 中不起作用

转载 作者:行者123 更新时间:2023-12-01 09:15:51 25 4
gpt4 key购买 nike

import javax.swing.*;
import java.awt.*;

class MyJPanel extends JPanel {
JButton login, register;

public MyJPanel() {
login = new JButton("Login");
register = new JButton("Register");

this.add(register);
this.add(login);
}
}

class MyJFrame extends JFrame {
MyJPanel mjp;

public MyJFrame(String title) {
super(title);

mjp = new MyJPanel();

Container ct = getContentPane();
ct.add(mjp);


setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));
setSize(400,400);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

class Gui7FirstPage {
public static void main(String[] args) {
MyJFrame mjf = new MyJFrame("Welcome!");
}
}

上面的代码沿着 X 轴对齐登录和注册 2 个按钮。我打算使用 BoxLayout.Y_AXIS 将它们堆叠起来,但似乎不起作用。

这两个按钮水平并排对齐,我希望它们垂直放置。

最佳答案

默认情况下,JPanel 使用FlowLayout,因此您的MyJPanel 类正在使用FlowLayout

您要将按钮添加到面板,因此面板需要使用 BoxLayout,而不是内容 Pane 。

在类的构造函数的开头,您需要:

setLayout( new BoxLayout(this, BoxLayout.Y_AXIS) );

关于java - BoxLayout.Y_AXIS 在 Swings 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40552143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com