gpt4 book ai didi

java - 从 ActionListener 变量创建 Jbutton

转载 作者:行者123 更新时间:2023-11-30 08:15:06 25 4
gpt4 key购买 nike

这里的任务是从 ActionListener 中的字符串创建 JButton,但我们需要一种方法来刷新 GUI 面板,以便它知道 GUI 中现在有用于按钮创建器的变量。我有一种感觉,按钮创建器必须在 ActionListener 中,并且 ActionListener 中缺少像 repaint() 或 removeAll 这样的命令。

public JButton[] turneringer = null;
JButton AntallTurneringer = new JButton("number of buttons");

JMenuBar meny = new JMenuBar();
JMenu fil = new JMenu("somthing");
JMenuItem angre = new JMenuItem("deleate on button");
JMenuItem angre2 = new JMenuItem("deleate all buttons");

int d;
int i;

public GUI(){
this.setTitle("somthing");
this.setSize(500,500);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLayout(new FlowLayout());

this.setJMenuBar(meny);
meny.add(fil);
fil.add(angre2);
fil.add(angre);
angre2.addActionListener(this);
angre.addActionListener(this);

AntallTurneringer.addActionListener(this);
this.add(AntallTurneringer);
AntallTurneringer.setVisible(true);

if(d > 0){
turneringer = new JButton[d];
for(i = 0; i < d; i++){
turneringer[d] = new JButton();
turneringer[d].addActionListener(this);
turneringer[d].setText("Turnering "+(i+1));
turneringer[d].setVisible(true);
this.add(turneringer[d]);
}}
this.setVisible(true);

}

@Override
public void actionPerformed(ActionEvent arg0) {
if(arg0.getSource().equals(AntallTurneringer)){
String tu = JOptionPane.showInputDialog(null, "number of buttons");
d = Integer.parseInt(tu);

}
}

最佳答案

您可以使用单独的按钮面板。会简化整个事情。

private JPanel buttonPnl;

public void actionPerformed(ActionEvent e){
buttonPnl.invalidate();

buttonPnl.clear();

//create the new buttons

buttonPnl.validate();
buttonPnl.repaint();
}

关于java - 从 ActionListener 变量创建 Jbutton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29775057/

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