Я попытался понять это сам, но не могу. Я застрял в странной проблеме.JComboBox ссылается на старый фрейм, а removeAllItems()
У меня есть Java-программа с несколькими классами и формами (я использую Intellij и сборку в GUI-Creator). Когда я переключаюсь с одного экрана на другой, я просто вызываю frame.setVisible(false);
в листовое окно и frame.setVisible(true);
в окне, которое я хочу показать дальше.
на кнопке Click Я делаю это:
В классе 1:
if (e.getSource() == umschaltenButton) {
this.mainW.goToMainWindow();
logger.log(Level.INFO, "Switched Back to MainMenu");
frame.setVisible(false);
}
А вот странная часть.
В классе 2:
public void goToMainWindow() {
frame = tvElectronics.drawMainWindow(); // I get a new Frame with new Images and so on
frame.addMouseListener(al);
frame.add(BotomPanel); // in here is the JComboBox
frame.setSize(LENGTH, HEIGHT);
comboBox1.removeAllItems(); // Here it tryes to refere to the old frame before i made frame = tvElectronics.drawMainWindow();
Vector<String[]> content = tvElectronics.getContent();
for (int i = 0; i < tvElectronics.getAnz(); ++i) {
comboBox1.addItem((i + 1) + ". " + content.get(i)[3]);
}
comboBox1.setSelectedIndex(chanel);
frame.setVisible(true);
}
И поэтому он пытается обновить старый кадр из class2, которая больше не существует из-за нового я только что создали. Итак, у меня есть 2 кадра: один, как я хочу, и один странный старый фрейм с классом2.
Моя проблема в том, что я хочу связать свой JComboBox с новым фреймом и обновить его, но он все еще подключен к старому, что вызывает странные проблемы, такие как возврат к функции. Я имею в виду, что он находится на последней строке goToMainWindow()
, а затем он начинается с первой строки.
Просьба ознакомиться с разделами [tour] и [help] этого сайта, чтобы узнать, как улучшить свой вопрос и, возможно, привлечь его к ответственности. И, кстати, добро пожаловать в SO. –