所以我有一個創建以下GUI第一次一類是武器的按鈕被點擊: 如果JOptionPane的被抽我的面板的組件未按
就在身邊每一個按鈕,我點擊應該切換相應地轉到不同的面板。然而,目前,我只是在武器面板上工作。爲了節省內存,我決定保存在搜索框中輸入的內容,如果用戶決定再次打開面板,應用程序會再次搜索列表。目前,我只有一個項目叫測試正如你看到的,我的問題是,如果我在搜索框中鍵入的東西,這是不可用,而且我開關面板,這是我的結果:
預期結果應該是錯誤消息,但是在搜索框中,按鈕和JList仍然可用,JList顯示「沒有武器列出」。
現在,當我刪除的JOptionPane我得到這一半的結果如下:
我想知道爲什麼會出現錯誤信息時,不繪製的面板?
PS:我有一個return語句之前輸入了一些控制檯消息,一個接一個的JOptionPane後,另一個,他們都得到正確打印
這裏是我的面板代碼:
private static JPanel searchMenu() {
JPanel pnl = new JPanel();
pnl.setOpaque(false);
pnl.setLayout(new BorderLayout());
Object[] search = search();
if(search.length == 0) {
JOptionPane.showMessageDialog(MyFrame.getFrame(),
"No weapons with your search criteria has been found.\n"
+ "What you type in the search box is searched for in the weapon names, classnames and their description.\n",
"No Weapon found", JOptionPane.ERROR_MESSAGE);
search = new Object[] {"No Weapons listed"};
}
System.out.println(search.length);
DefaultListModel list = new DefaultListModel();
for(Object o: search) list.addElement(o);
JList searched = new JList();
searched.setModel(list);
searched.setPreferredSize(new Dimension(250, 700));
searched.setFont(new Font("Tahoma", Font.PLAIN, 15));
pnl.add(searched, BorderLayout.WEST);
pnl.add(weaponDisplay(lastSelec),BorderLayout.CENTER);
JPanel space = new JPanel();
space.setOpaque(false);
pnl.add(space,BorderLayout.SOUTH);
return pnl;
}
爲了儘快提供更好的幫助,請發佈[MCVE]或[簡短,獨立,正確的示例](http://www.sscce.org/)。 –