gpt4 book ai didi

java - 访问 JButton[]

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:52:31 24 4
gpt4 key购买 nike

我有 3 行 3 个按钮:绿色、黄色和红色。它们都在一个自己的数组中。
当我单击一个绿色按钮时,同一行中的其他 2 个按钮应该被禁用。但我不确定如何使用数组处理它。

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

public class Test extends JFrame implements ActionListener {

View view = new View();
JButton bGreen[] = new JButton[3];
JButton bYellow[] = new JButton[3];
JButton bRed[] = new JButton[3];

public Test() {
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setBounds(300, 100, 500, 400);
this.setVisible(true);
this.setLayout(new GridLayout(3, 3));

makeButtons();
}

public void makeButtons() {
for (int i = 0; i < 3; i++) {
bGreen[i] = new JButton("Green");
bYellow[i] = new JButton("Yellow");
bRed[i] = new JButton("Red");

bGreen[i].setBackground(Color.green);
bYellow[i].setBackground(Color.yellow);
bRed[i].setBackground(Color.red);

bGreen[i].addActionListener(this);
bYellow[i].addActionListener(this);
bRed[i].addActionListener(this);

this.add(bGreen[i]);
this.add(bYellow[i]);
this.add(bRed[i]);
}
}

@Override
public void actionPerformed(ActionEvent ae) {
Object source = ae.getSource();
if (source == bGreen) // e.g. bGreen[1]
{
// bYellow[1].setEnabled(false);
// bRed[1].setEnabled(false);
}
if (source == bYellow) // e.g. bYellow[1]
{
// bGreen[1].setEnabled(false);
// bRed[1].setEnabled(false);
}
// the same with bRed
}

public static void main(String[] args) {
Test test = new Test();
}
}

最佳答案

不要。你将重新发明轮子。使用 JToggleButton 并将它们按行分组到相同的 ButtonGroup 中。

@Hovercraft Full Of Eels 提出的建议是正确的(并且应该是一个真正的答案)。

关于java - 访问 JButton[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10108972/

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