gpt4 book ai didi

Java JFrame无法创建按钮(数组列表)

转载 作者:行者123 更新时间:2023-12-02 06:08:03 25 4
gpt4 key购买 nike

我想使用 ArrayList 创建动态按钮列表。如果我复制在构造函数中编写的 AddButton 方法,它就可以工作。但是,如果我在 ActionListener 中运行此方法,它将不起作用。我该如何解决这个问题?

代码:

package HelloJFrame;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class Main extends JFrame implements ActionListener {

private static final long serialVersionUID = 1L;
private JTextField text1;

public static void main(String[] args) {
// TODO Auto-generated method stub
new Main().setVisible(true);

}

public Main() {
super("Hello JFrame");// Set Title from JFrame constructor
setSize(600, 600);
setResizable(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new FlowLayout());
text1 = new JTextField(20);
// text.setSize(200, 20);
add(text1);

JButton submit = new JButton("Add Button");

submit.addActionListener(this);
submit.setActionCommand("ekle");

add(submit);

}

@Override
public void actionPerformed(ActionEvent e) {
AddButton(2);
}

public void AddButton(int number) {
ArrayList<JButton> buttons = new ArrayList<JButton>();
for (int i = 0; i < number; i++) {
buttons.add(new JButton("Button #" + i));
}
/*
* JButton button = new JButton("Click!");
* button.addActionListener(this); add(button);
*/

for (int i = 0; i < buttons.size(); i++) {
this.add(buttons.get(i));
}
}

}

最佳答案

将所有按钮添加到框架后,您需要添加

revalidate();
repaint();

确保调用布局管理器。

此外,方法名称不应以大写字符开头。 “AddButton”应该是“addButton”。

关于Java JFrame无法创建按钮(数组列表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22116859/

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