JTable中 setValueAt() 方法ArrayIndexOutOfBoundsException

发布于 2022-09-03 00:43:36 字数 1309 浏览 18 评论 0

想对对(1,1)单元格进行复制,代码如下


package org.occ.gui.table;

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;

public class TableTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        JFrame frame = new JFrame("welcome");
        JTable table2= new JTable();
        String name = "name";
        table2.setValueAt(name, 1, 1);

        JScrollPane scr = new JScrollPane(table2);
        frame.add(scr);
        frame.setSize(370,90);
        frame.setVisible(true);
        frame.addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent arg0){
                System.exit(1);
            }
        });

    }

}

报以下异常

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 >= 0
    at java.util.Vector.elementAt(Vector.java:427)
    at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:277)
    at javax.swing.JTable.convertColumnIndexToModel(JTable.java:2553)
    at javax.swing.JTable.setValueAt(JTable.java:2719)
    at org.occ.gui.table.TableTest.main(TableTest.java:27)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

╭ゆ眷念 2022-09-10 00:43:36

关键是你set的时候位置都不存在...
先把column和row添加上去吧,因为你set的位置是1,1 至少2行2列


package org.occ.gui.table;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
import javax.swing.table.DefaultTableModel;


public class TableTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JFrame frame = new JFrame("welcome");
                JTable table2 = new JTable();
                String name = "name";
                DefaultTableModel model = (DefaultTableModel) table2.getModel();
                model.addColumn("id");
                model.addColumn("name");
                Object[] row1 = new Object[]{1, null};
                model.addRow(row1);
                Object[] row2 = new Object[]{2, null};
                model.addRow(row2);
                table2.setValueAt(name, 1, 1);

                JScrollPane scr = new JScrollPane(table2);
                frame.add(scr);
                frame.setSize(370, 90);
                frame.setVisible(true);
                frame.addWindowListener(new WindowAdapter() {
                    public void windowClosing(WindowEvent arg0) {
                        System.exit(1);
                    }
                });
            }
        });
    }

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文