2010-05-30 41 views
0

嘿,我有另一個問題。我在我的主窗口中創建了JList,現在我想添加一些內容。我做這樣......在JList中寫東西

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) 

{   

      Dodaj_Przedmiot dodaj_przedmiot = new Dodaj_Przedmiot(null, true); 
      dodaj_przedmiot.setVisible(true); 
      SterowanieBazy instance = SterowanieBazy.getInstance();  
      Zmienne_pomocnicze zp = new Zmienne_pomocnicze(); 
      String przedmiot = zp.getPrzechowaj(); 
      instance.dodajPrzedmiot(przedmiot); 
      String przedm[] = instance.zwrocPrzedmioty(); 
      jList1.setListData(przedm); 
} 

我想在列表中寫的是什麼,我從我的jDialogForm收集:dodaj_przedmiot

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) 

{ 

     String sciezka = jTextField1.getText(); 
     if (sciezka.length() > 0) 
     { 
      Zmienne_pomocnicze zp = new Zmienne_pomocnicze(); 
      zp.setPrzechowaj(sciezka); 

     } 
     this.setVisible(false); 
    }        

和我收集嘗試使用這個類來複制日期

public class Zmienne_pomocnicze { 

public String n; 
public int a; 

public void setPrzechowaj (String neew) 

{ 

    n = neew; 
} 

public String getPrzechowaj() 

{ 

    return n; 
} 

} 

我將不勝感激任何想法如何使其工作。

+1

之前,我從來沒有見過拋光類的名字,看起來很有趣... – miku 2010-05-30 00:53:28

回答

2

這有點難以理解,但是從我收集,使用的是在兩個地方你Zmienne_pomocnicze類,兩者似乎什麼也不做。

首先,在jButton2ActionPerformed中實例化一個新的Zmienne_pomocnicze並嘗試使用getPrzechowaj方法從中獲取數據。這將返回n,但是由於您剛剛實例化了該實例,因此nnull。由於我不能從下面的代碼的方法名稱中推斷出來,所以我無法弄清楚你想要用這些數據做什麼,但這個動作絕對不是你想要做的。

在第二種情況下,jButton1ActionPerformed從文本字段取的值,然後測試有效性(legnth大於0)。如果驗證通過,您隨後創建一個新的Zmienne_pomocnicze,用文本字段值調用setPrezechowaj,然後讓新對象超出範圍。再次,這當然不是預期的效果。

,看看你的程序的流程應該是,即哪個按鈕觸發,你如何期望他們之間存在相互作用jButton[12]ActionPerformed方法會很有趣。

1

這裏將條目添加到JList的一個簡單的例子。

import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.util.Random; 
import javax.swing.*; 

public class JListTest { 

    private static final Random random = new Random(); 

    public static final void main(String args[]) throws Exception { 
     SwingUtilities.invokeLater(new Runnable() { 

      public void run() { 
       createAndShowGUI(); 
      } 
     }); 
    } 

    private static void createAndShowGUI() { 
     final JFrame frame = new JFrame("Test"); 
     final DefaultListModel dlm = new DefaultListModel(); 
     final JList list = new JList(dlm); 
     frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
     frame.add(new JScrollPane(list)); 
     frame.add(new JButton("Add") { 
      { 
       addActionListener(new ActionListener() { 
        public void actionPerformed(ActionEvent e) { 
         dlm.addElement("A" + (random.nextInt(9000) + 1000)); 
        } 
       }); 
      } 
     }, BorderLayout.SOUTH); 
     frame.setLocationRelativeTo(null); 
     frame.pack(); 
     frame.setVisible(true); 
    } 
} 
+0

+1明確而具體的例子 – stacker 2010-05-31 06:11:58

+0

對不起,我可能忘了一下對勾 – stacker 2010-05-31 07:08:51

1

我總是推薦閱讀API的基本信息。

如果您閱讀JList API,您將在「如何使用列表」上找到指向Swing教程的鏈接。那裏的例子顯示瞭如何動態添加和刪除ListModel中的條目。

教程是開始,因爲你找到工作的例子,以及解釋爲代碼是如何工作的好地方。然後,如果需要,您可以詢問關於特定代碼段的具體問題。

不僅如此,您現在有一個可能會用於其他問題的參考。