2017-06-02 52 views
0

我有2個類。我想在每個類中有2個相同的JComboBox。 我在第一個類中成功完成了這個任務,因爲我的JComboBox中的值與JList中的值相同,並且填充了文本字段中的文本。 但是我無法在其他課上得到相同的結果!使用相同的JComboBox從一個類到另一個Java Swing

提取物我的第一堂課:

DefaultComboBoxModel Ajout = new DefaultComboBoxModel(); 
    btnValidate.addMouseListener(new MouseAdapter() { 
     @Override 
     public void mouseClicked(MouseEvent arg0) { 
      String newCategorie = textCreerCategorie.getText(); 
      Ajout.addElement(newCategorie); 
      list.setModel(Ajout); 
      myComboB.setModel(Ajout); 

原來是這樣!我如何在我的其他類中使用相同的JComboBox並在其中使用我的JList?

+0

請編輯您的問題,包括一個[mcve],展示您描述的問題。 – trashgod

+0

您可以在兩個UI類之間共享一個或多個類。 –

回答

1

你得到了什麼錯誤?

爲什麼你不能在你的第二課中實例化一個新的JComboBox?提供更多的細節,所以我們可以幫助你!

首先。你是否在第二類中導入了正確的庫,所以你可以使用JComboBox? (即javax.swing。*;)

嘗試在第二個類中創建一個JComboBox的新實例並使用它。如果您想使用在第一個類中實例化的Ajout JComboBox,請嘗試使其成爲Global,並在第二個類中使用它。

我的答案再次基於假設。如果我們能看到更多的代碼,它可以真正幫助! :)

0

可以使用的ComboBoxModel自己的類做到這一點:當您創建使用該模型的任何地方JComboBox

class MyComboBoxModel extends DefaultComboBoxModel<Job> { 
    public MyComboBoxModel(Job[] items) { 
     super(items); 
    } 

    @Override 
    public Job getSelectedItem() { 
     Job selectedJob = (Job) super.getSelectedItem(); 

     // do something with this job before returning... 

     return selectedJob; 
    } 
} 

及更高版本。

MyComboBoxModel myModel = new MyComboBoxModel(jobs); 
JComboBox<Job> jobList = new JComboBox<Job>(myModel); 
0

感謝大家的回答。更具體地說,這是一個購物清單,我有兩個班級,一個是主窗口,您可以選擇一個類別和產品並顯示在列表中。

另一個用於管理類別和產品的窗口,以便在創建分類時(從jtext字段添加到我的jlist)我希望它將其添加到主窗口中的組合框中。我希望你們能理解我(法國女孩在這裏)。

在修改類:

DefaultComboBoxModel Ajout = new DefaultComboBoxModel(); 
    btnValiderCategorie.addMouseListener(new MouseAdapter() { 
     @Override 
     public void mouseClicked(MouseEvent arg0) { 
      String newCategorie = textCreerCategorie.getText(); 
      Ajout.addElement(newCategorie); 
      list.setModel(Ajout); 
      ajouterACategorie.setModel(Ajout); 

這使我能夠在同一時間在我的JList和一個組合框是在修改Windows添加一個新的categorie。 然後,我想在主窗口中使用相同的組合框,以便用戶可以選擇他在另一個類中創建的類別。 主類做了很多其他的東西,但我preocupation中有此組合框

JComboBox<String> categories_content = new JComboBox<String>(); 
    categories_content.setBounds(140, 63, 157, 30); 

比改裝類其他組合框相同的效果。 對不起,如果它太混亂我會明白

相關問題