У меня есть основной код JFrame в классе:Jframe. Получение значения из ComboBox, в другом классе, используя getSelectedItem()
@SuppressWarnings("serial")
public class CreateBuildAndPr extends JFrame {
....some code...
private JComboBox comboBoxClients = new JComboBox();
private JComboBox comboBoxBranch = new JComboBox();
....some code...
public String getClient(){
String getClient = comboBoxClients.getSelectedItem().toString();
//System.out.printf("\nClient: \n" + getClient);
return getClient;
}
/**
* Create the frame.
*/
public CreateBuildAndPr() {
lblCreateBuildAnd.setFont(new Font("Tahoma", Font.BOLD, 11));
comboBoxBranch.setModel(new DefaultComboBoxModel(new String[] {"1a", "2a", "3a", "4a"}));
comboBoxClients.setModel(new DefaultComboBoxModel(new String[] {"1", "2", "3"}));
textFieldInfo.setColumns(10);
btnCreateBuild.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
CreateNewBuildAndPr callSe = new CreateNewBuildAndPr();
callSe.newBuild();
}
});
initGUI();
}
Так что, когда я называю этот метод getClient(), в классе CreateBuildAndPr, выбранное значение из ComboBox является верный. Давайте скажем: «2». Но когда я звоню из другого класса, всегда возвращается результат «1». Вот другой класс:
public class CreateNewBuildAndPr extends ConnectionsUrlAndDb {
@Test
public void newBuild() {
CreateBuildAndPr createBuildAndPr = new CreateBuildAndPr();
System.out.printf("\n\nSelenium: " +createBuildAndPr.getClient());
String info = createBuildAndPr.getInfo();
System.out.printf("\n\nSelenium: " +info);
String branch = createBuildAndPr.getBranch();
System.out.printf("\n\nSelenium: " +branch);
... more code .... }
Как я могу исправить getSelectedItem в другом классе?
Как закрывается первый кадр? Я не вижу ожидания, пока первый кадр не будет закрыт в методе 'newBuild'. – KDM
Нет никакого ожидания. jFrame - это только CreateBuildAndPr. CreateNewBuildAndPr - это только класс, а не jFrame. Таким образом, основной кадр никогда не закрывается, просто вызывайте другие методы из другого класса. – Rumen
Итак, когда значение комбо изменилось? Когда вы должны печатать его? Рамка будет отображаться, и ваш код, следующий за вызовом 'new', будет продолжен. Он не ждет, когда вы выберете комбо. Вы можете использовать модальное диалоговое окно и дождаться его закрытия до того, как вы напечатаете выбранное значение. – KDM