2015-11-25 48 views
1

問題

在一個形式I具有多重表,其中每個項目具有「名稱」和「ID號」。我希望我的應用能夠執行以下操作:代號一 - 多重表值

當我選擇一個項目後,它將進入「配置文件」屏幕,然後它將顯示關於該人的所有信息,基於「身份證號碼」我將從存儲中獲得。

問題

我怎樣才能從多重表項我只是點擊的信息? 然後,如何保存該信息,以便我可以在「顯示前(配置文件屏幕)」中使用它,以便從存儲中檢索信息。 Thnaks

回答

2

我會建議你使用多按鍵,而不是多重表,那麼你可以添加動作事件到單個元素。

您可以將個別元素保存到actionEvent中的靜態變量中,並在之前顯示您的配置文件表單中使用它。例如:

聲明這個全球:

private static String UserName = ""; 

並初始化它,如下所示:

Container content = new Container(new BoxLayout(BoxLayout.Y_AXIS)); 
content.setScrollableY(true); 
for (int i = 0; i < YourItemsLength; i++) { 
     final MultiButton mb = new MultiButton("Blablabla"); 
     mb.addActionListener(new ActionListener() { 

      @Override 
      public void actionPerformed(ActionEvent evt) { 
       UserName = mb.getTextLine1(); // or anything you want it to be 
       //show the profile form here 
      } 
     }); 
     content.addComponent(mb); 
} 
content.revalidate(); 

在輪廓的beforeShow(),呼叫用戶名,你應該能夠使用的值。爲所有你需要的值做同樣的事情。

+0

代碼應該在「Main_onCreate」方法下,對不對? – Felipe

+0

不,它應該在postShow()之下,如果您的窗體是使用GUI Builder創建的。 – Diamond

1

我完全同意鑽石的答案,我認爲這是創建物品清單的最佳/最簡單的方法。但是,如果您仍想使用MultiList,則需要實施ListModel或使用DefaultListModel

從你的問題我假設你只是使用MultiList並填寫了值?

在這種情況下,當在名單上的動作事件你可以得到列表的實例調用Map m = (Map)myList.getSelectedItem();

地圖應返回包含數據的鍵/值對。通過將它們命名爲與rendererd列表元素不同的名稱,可以簡化隱藏的鍵,因此您可以使用「id」作爲鍵。