在java中将整数添加到JList

时间:2014-09-02 16:07:54

标签: java int jlist

我正在制作一个包含两个组件的jframe。列表和按钮。列表从0开始,每按一次按钮,它增加1.因此,如果按下按钮,jlist中的值将从0变为1.

我的问题是,如何在jlist中添加整数? (我尝试使用setText方法以防万一 - 仅适用于字符串)

由于 编辑:我的代码的一部分(ActionListener)

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

1 个答案:

答案 0 :(得分: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();
         }
      });
   }  
}