У меня есть задание, которое мне нужно было создать, и массив кнопок для проекта приложения рисования, и все сделано, но я застрял в назначении / обращении / изменении моего слушателя действия.
Способ, которым он работает (предположительно), заключается в том, что у меня есть цикл, который создает, присваивает имя и добавляет к слушателю действия массив JButtons с именем myShapes.Исходя из этого, я должен иметь список действий с именем listener ();дайте int 1-6 каждому jbutton, устанавливая текущее состояние 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 J-кнопкам разное состояние actionPerformed, потому что каждое состояние представляет свою кисть.Я попробовал несколько способов, таких как попытка создать массив списка действий и переименование их, но это дает ошибку или разрывы цикла, которые необходимы для назначения, и закончилась этой последней попыткой.к сожалению, это в настоящее время за мной.Если был на этом в течение 2 дней, и я в тупике.