我有6个按钮和6个布尔值,Actionhandler应该将布尔值设为该按钮的布尔值,如果单击该按钮,则为true。为了简化起见,我制作了一个boolean []数组,但是setter函数给出了错误:
“表达式的类型必须是数组类型,但解析为布尔值”;
我需要在ActionListener的设置器中设置什么?
我尝试过:
Var.setKo(true);
Var.setKo(true[i]);
Var.setKo(boolean[i] true);
public class Gui {
static JButton ko[] = new JButton[6];
public Gui() {
int y=0;
for (int i = 0; i < ko.length; i++) {
ko[i] = new JButton();
ko[i].addActionListener(new ActionHandler());
ko[i].setBorder(bor);
if(i==0||i==2||i==4) {
ko[i].setBounds(650, 200+60*y, 250, 30);
}else {
ko[i].setBounds(950, 200+60*y, 250, 30);
y++;
}
jfMenu.add(ko[i]);
}
}
public static JButton[] getKo() {
return ko;
}
public static void setKo(JButton[] ko) {
Gui.ko = ko;
}
}
public void actionPerformed(ActionEvent e) {
for (int i = 0; i < Var.getKo().length; i++) {
if(e.getSource() == Var.getKo()) {
Var.setKo(true[i]);
}else {
Var.getKo()[i] = false;
}
}
}
public class Var {
static boolean ko[] = new boolean[6];
public Var() {
for (int i = 0; i < ko.length; i++) {
ko[i] = false;
}
}
public static boolean[] getKo() {
return ko;
}
public static void setKo(boolean[] ko) {
Var.ko = ko;
}
}
答案 0 :(得分:0)
您无需在此处使用setter,您的数组已存在,它已经初始化,因此无需再次设置它。
您需要更改的是某些索引的值。可以通过使用getter来获取对数组的引用,然后选择正确的索引并为其分配值。
就像下面的
public void actionPerformed(ActionEvent e) {
for (int i = 0; i < Var.getKo().length; i++) {
Var.getKo()[i] = e.getSource() == Var.getKo();
}
}