gpt4 book ai didi

java - 如何通过单击 GUI 中的按钮来更改面板的内容?

转载 作者:行者123 更新时间:2023-12-01 14:47:23 26 4
gpt4 key购买 nike

唷。我被这个问题困扰了好久。我正在做一个模拟小测验的 GUI 程序。但我不知道当我希望我的程序像这样时要放置什么代码... start up

当我点击开始按钮时,面板应该是这样的...... question

到目前为止,这就是我的启动菜单......

public static void main (String []args){
JFrame f = new JFrame("Pop Quiz");
f.setSize(400,300);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLayout(null);
f.setResizable(false);

JPanel p1 = new JPanel();
p1.setSize(400,100);
p1.setLocation(0,0);
p1.setLayout(new GridLayout(3,1));
f.add(p1);

JLabel l1 = new JLabel("Welcome to POP Quiz!");
p1.add(l1);

JLabel l2 = new JLabel("Enter your name:");
p1.add(l2);

final JTextField name = new JTextField ();
p1.add(name);

JPanel p2 = new JPanel();
p2.setSize(400,50);
p2.setLocation(0,225);
f.add(p2);

JButton start = new JButton ("Start");
p2.add(start);

start.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String player = name.getText();
//what should be added here to change the contents of the panel?
}
});

f.show();
}

对于问题...

public static void main(String[] args){
JFrame f = new JFrame("Pop Quiz");
f.setSize(400,300);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLayout(null);
f.setResizable(false);

JPanel p1 = new JPanel();
p1.setSize(400,100);
p1.setBackground(Color.PINK);
f.add(p1);

JLabel question = new JLabel();
question.setText("In computers, what is the smallest and basic unit of information storage?");
p1.add(question);

JPanel p2 = new JPanel();
p2.setSize(400,175);
p2.setLocation(0,100);
p2.setLayout(new GridLayout(2,4));
f.add(p2);

JButton a = new JButton("a. Bit");
p2.add(a);

JButton b = new JButton("b. Byte");
p2.add(b);

JButton c = new JButton("c. Data");
p2.add(c);

JButton d = new JButton("d. Newton");
p2.add(d);

f.show();
}

任何人都可以提供帮助,我将非常感激。提前致谢!祝你今天过得愉快! :)

最佳答案

使用 CardLayout 。如图here .

Game view High Scores view

提示

布局

f.setLayout(null);

使用布局!这一点我怎么强调都不为过。布局可能看起来很复杂,但它们是在 GUI 中布置复杂组件组的唯一可行的解​​决方案,该 GUI 旨在用于不同的平台(PLAF、屏幕分辨率......)。

控件

JButton a = new JButton("a. Bit");
p2.add(a);

JButton b = new JButton("b. Byte");
// ..

鉴于用于按钮的字符串的性质,它们似乎最好是 JComboBoxJListButtonGroup 中的按钮>.

已弃用的方法

f.show();

此方法已被弃用,您的编译器应该警告您该方法已被弃用,或者还有其他警告被忽略。查看此类警告并修复它们。方法被弃用是有原因的。

关于java - 如何通过单击 GUI 中的按钮来更改面板的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15289570/

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