Я хочу создать более одного объекта класса, который не зависит друг от друга.
Я вызываю конструктор класса несколько раз в цикле for, но как я могу определить эти объекты?
Я попытался использовать статическую переменную, которая принимает значение индекса цикла for, но эта переменная принимает значение последнего индекса цикла for.
Вот код:
Maingui.java
public class Maingui extends JFrame {
public static JFrame frame;
public static JButton runButton;
public Maingui() throws IOException {
frame = new JFrame("maingui");
setSize(1024,700);
setTitle("maingui");
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setLayout(new BorderLayout());
runButton = new JButton("Run");
runButton.addActionListener(new RunBtnListener());
add(runButton);
}
}
RunBtnListener.java
public class RunBtnListener implements ActionListener {
ArrayList<SecondGui> menus = new ArrayList<SecondGui>();
public void actionPerformed(ActionEvent e) {
for(int i = 0; i < 2; i++) {
menus.add(new SecondGui(i));
}
}
}
SecondGui.java
public class SecondGui extends JFrame {
public static int c;
JFrame frame;
JButton button;
public SecondGui(int i) {
this.c = i;
frame = new JFrame("Test");
setSize(1024,700);
setTitle("Menu");
setLocationRelativeTo(null);
setVisible(true);
this.setLocation(50*i, 50*i);
// Set layout manager
setLayout(new BorderLayout());
button = new JButton("B");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("C: " + c);
}
});
add(button);
}
}
Когда я нажимаю на кнопку button
в SecondGui
GUIвыход всегда 1
.Но я хочу, чтобы вывод был 0
или 1
в зависимости от того, в каком графическом интерфейсе я выбираю кнопку.