我正在尝试将一些次要的东西添加到JList中,作为一种原型,但是当我单击“添加”按钮时遇到了问题。

public static void main(String[] args) {
    // TODO Auto-generated method stub
    final String[] nums = {"a", "b", "c"};
    JFrame frame = new JFrame("Try");
    Container pane = frame.getContentPane();
    JList list = new JList (nums);
    int column = nums.length+1;
    pane.setLayout(new GridLayout(column, 2));
    pane.add(list);
    JButton addpiece = new JButton("Add");
    pane.add(addpiece);
    addpiece.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            int j = nums.length;
            nums[j+1] = "input";
        }
    });
    frame.pack();
    frame.setVisible(true);

}


单击添加按钮时出现错误。除了JList的其他成员外,我还希望它打印出输入。

最佳答案

利用您提供的信息,我看到了以下问题:

您要声明一个固定的最终数组nums:

final String[] nums = {"a", "b", "c"};


当您单击按钮时,您正在执行以下代码:

int j = nums.length;
nums[j+1] = "input";


您有两个问题:

最终字段无法修改。
Java中的数组是固定大小的。

为了正确处理JList,您必须采用另一种方式:

供你参考:

http://www.seasite.niu.edu/cs580java/JList_Basics.htm

关于java - 使用按钮添加到JList,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34908519/

10-13 04:33