2014-09-02 45 views
1

使用兩個組件創建一個jframe。一個列表和一個按鈕。該列表從0開始,每次我按下按鈕它增加1.所以,如果我按下按鈕,在jlist中的值從0更改爲1.在Java中將整數添加到JList中

我的問題是,如何添加一個整數到一個JList的? (我想以防萬一的setText方法 - 僅適用於字符串)

感謝 編輯:PART我的代碼的(ActionListener的)

  increase.addActionListener(new ActionListener(){ 
      public void actionPerformed(ActionEvent e){ 
       counter++; 
       System.out.println(counter); 
       listModel.addElement(counter); 
//    listModel.clear(); 
      } 
     }); 
+0

要改變該值在文本框中使用'新的整數(yourInteger)的ToString()' – SomethingSomething 2014-09-02 16:13:33

+0

@ user3322273了一個JList在一個JFrame不是一個文本框。 – Guest 2014-09-02 16:15:16

回答

1

我假設你想爲int項目添加到JList,這意味着每次按下按鈕時列表顯示中都會彈出一個新的int值。您可以創建一個JList<Integer>,並將整數(或裝入的整數)添加到JList的模型中,通常使用listModel.addElement(myInteger)

如果您需要清除以前的元素,這樣做添加元素,不後。例如,

import java.awt.event.ActionEvent; 

import javax.swing.*; 

public class Foo2 extends JPanel { 
    private DefaultListModel<Integer> dataModel = new DefaultListModel<>(); 
    private JList<Integer> intJList = new JList<>(dataModel); 

    public Foo2() { 
     add(new JScrollPane(intJList)); 
     intJList.setFocusable(false); 
     add(new JButton(new AbstractAction("Add Int") { 
     private int count = 0; 

     @Override 
     public void actionPerformed(ActionEvent e) { 
      dataModel.clear(); // if you need to clear previous entries 
      dataModel.addElement(count); 
      count++; 
     } 
     })); 
    } 

    private static void createAndShowGui() { 
     JFrame frame = new JFrame("Foo2"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.getContentPane().add(new Foo2()); 
     frame.pack(); 
     frame.setLocationRelativeTo(null); 
     frame.setVisible(true); 
    } 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
      createAndShowGui(); 
     } 
     }); 
    } 
} 
+0

謝謝你工作得很好。我似乎又遇到了另一個問題。所以每次我按下它增加的按鈕。但它也會刪除之前顯示的整數。我在listModel.addElement(counter)後面使用了clear方法;但它不起作用。林相當肯定我是否放錯了明確的方法。但是,你能知道什麼可能是錯的嗎? – Guest 2014-09-02 16:14:29

+0

@訪客:抱歉,但你讓我困惑。明確的方法是什麼意思,你爲什麼要這麼叫?請編輯您的原始問題併發布您的最新代碼。點擊您的問題下方的[編輯鏈接](http://stackoverflow.com/posts/25627782/edit)以允許您對其進行編輯。在編輯窗口中,單擊問號以獲取幫助添加代碼。 – 2014-09-02 16:15:29

+0

抱歉讓你困惑。所以你告訴我完美的作品。我現在需要的是每次按下按鈕清除jlist。所以說我點擊按鈕。它將計數器增加到1,並在列表中顯示1。如果我再次單擊該按鈕,它將刪除1並打印2.附加部分代碼 – Guest 2014-09-02 16:21:21