Как создать отдельные строки j-объектов, которые частично слушают друг друга и глобальные переменные через метод? - PullRequest
0 голосов
/ 10 апреля 2019

Я просто изучаю Java уже 6 недель, так что будьте спокойны со мной, я еще не настолько тверд.Я пытаюсь создать метод, который создает строку j-объектов (точнее, текстовое поле, 2 JComboboxes и один JLabel), которые зависят друг от друга и от некоторых глобальных переменных.

ПодробноЯ хочу быть в состоянии сделать следующее:

Текстовая метка просто должна быть заполняемой, понял, нет проблем.К первому комбинированному списку подключен String Array, и когда вы выбираете его в меню, глобальная переменная должна быть доступна для использования в JLabel (например, вы выбрали запись «Bod», глобальная переменная int «bod» должнабыть выбранным).Второй комбинированный список имеет подключенный массив массива int (0-13), и когда вы его выбираете, он также должен быть доступен в JLabel.Наконец, JLabel должен добавить переменные из двух комбинированных списков (например, вы выбрали «bod» в блоке 1, то есть, скажем, «3» и выбрали «5» во втором блоке, Jlabel должен сказать «8»)).

Это уже работало, когда я создавал все это индивидуально.Моя проблема начинается, когда я хочу создать случайное количество этих строк с помощью метода.Я могу создавать строки, но я понятия не имею, как автоматически создавать прослушиватели действий для каждой из этих строк, чтобы у каждой строки был свой выбор.

Я использую это как тренировку для меня, и долгая цель - это приложение для Android, но это еще далеко.

Я попытался дать имена списков со списком из массива с помощью метода, а затем попытался создать метод, который дал бы те же имена для ActionListeners.Я знаю, что это довольно глупая попытка, но я не имею ни малейшего понятия, как этого добиться, даже с часами веб-поиска.

Я знаю, что это было многословно, но я рад любой помощи, вы можете дать мне!

public void newskillline (String a1, String b1, String c1) {

JTextField skillfield = new JTextField("",10);
skillfield.setForeground(Color.white);
skillfield.setBackground(Color.darkGray);
skillfield.setName("Skillline" + skilllinecount);

JComboBox skillattchoice = new JComboBox(Skills.SkillAttr);
skillattchoice.setForeground(Color.white);
skillattchoice.setBackground(Color.darkGray);
skillattchoice.setName(a1);

JComboBox skillscore = new JComboBox(Skills.SkillScore);
skillscore.setForeground(Color.white);
skillscore.setBackground(Color.darkGray);
skillscore.setName(b1);

JLabel skillpool = new JLabel();
skillpool.setForeground(Color.white);
skillpool.setBackground(Color.darkGray);
skillpool.setName(c1);

skilllinecount++;
Skillpanel.setLayout(new GridLayout(skilllinecount+2, 4));
Skillpanel.add(skillfield);
Skillpanel.add(skillattchoice);
Skillpanel.add(skillscore);
Skillpanel.add(skillpool);
Skillpanel.revalidate();  
Skillpanel.repaint();

}

public void skillaction (String a1) {

a1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {



}
}

);

}
...