我有一个任务,我必须为一个绘画应用程序项目创建一个按钮数组,一切都完成了,但我被困在分配/引用/修改我的动作侦听器上。
它的工作方式(假设)是我有一个循环,它创建、分配一个名称,并向动作侦听器添加一个名为 myShapes 的 JButton 数组。由此,我应该有一个名为 listener() 的 actionlistener;给每个 jbutton 一个 int 1-6,设置当前的 actionPerformed 状态。
int actionNum = 1;
ActionListener listener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
currentAction = actionNum;
}
};
//........................................................................
String[] myShapesName = {"brushBut", "lineBut", "ellipseBut", "rectBut", "strokeBut", "fillBut"};
//String[] myLisName = {"brushButL", "lineButL", "ellipseButL", "rectButL", "strokeButL", "fillButL"};
JButton[][] myShapes = new JButton[3][2];
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 2; j++) {
myShapes[i][j] = new JButton();
myShapes[i][j].setBounds(0, 0, 50, 50);//(100, 200);
myShapes[i][j].setName(myShapesName[i+j]);
myShapes[i][j].setBackground(null);
myShapes[i][j].putClientProperty("id",
String.valueOf(myShapesName[i+j]).concat(String.valueOf(j)));
MyShapesBox.add(myShapes[i][j]);
System.out.println(listener);
}
}
问题是我不知道如何更改 actionlistener 以便它为所有 6 个 Jbuttons 提供不同的 actionPerformed 状态,因为每个状态代表不同的画笔。我尝试了几种方法,例如尝试创建一个动作列表数组并重命名它们,但这会导致错误或循环中断,这是分配所需的,并以最后一次尝试结束。不幸的是,这目前超出了我的范围。如果在这上面呆了 2 天,我就很难过。
明月笑刀无情
相关分类