У меня есть следующее GUI:
Как видите, панели с зеленой и желтой рамками имеют одинаковый формат. 2 ярлыка и кнопка. Я создал их, используя следующую функцию, которую я вызываю для другой функции, используя предложение for
, чтобы создать несколько таких панелей:
private JPanel subject (int id, String name, int credits, boolean optional) {
JPanel main = new JPanel();
main.setLayout(new BoxLayout(main, BoxLayout.Y_AXIS));
if (optional) {
main.setBorder(BorderFactory.createTitledBorder(new LineBorder(Color.YELLOW, 1), "("+id+")"));
} else {
main.setBorder(BorderFactory.createTitledBorder(new LineBorder(Color.GREEN, 1), "("+id+")"));
}
JPanel namePanel = new JPanel();
namePanel.setLayout(new FlowLayout());
namePanel.add(new JLabel(name));
JPanel creditsPanel = new JPanel();
creditsPanel.setLayout(new FlowLayout());
creditsPanel.add(new JLabel(credits + " credits"));
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new FlowLayout());
buttonPanel.add(new JButton("Add to favorites")); //Here I add the button to the main panel
main.add(namePanel);
main.add(creditsPanel);
main.add(buttonPanel);
return main; //I return the panel to add it to the frame
}
JButtons
в панелях создаются, но не назначаются имя.
Как добавить слушатель действия для каждой кнопки на каждой создаваемой панели?
Должен ли я создать ссылочное имя для кнопки в функции, чтобы сделать это?
Обратите внимание, что все кнопки выполняют одинаковые действия, но не одно и то же.