让JTable填充对象的最佳方法是什么?

时间:2014-07-10 21:25:58

标签: java swing user-interface jtable

我们说我有一个People数组。这些人有很多领域,如姓名,职位,职称,薪水。

我发现大多数问题都是关于填充JTable 2D阵列,除非我错了,否则不是我想要做的。< / p>

我希望能够点击一个按钮,让JTable查看人数组并显示该表。

谢谢!

编辑:我希望能够在这里更改setModel参数以使用特定值进行更新。

JButton btnRefresh = new JButton("Refresh");
    btnRefresh.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent arg0) {
            table_1.setModel(new DefaultTableModel(new Object[][] {}, new String[] {
                    "#", "Song", "Artist", "Time" }));
            table_1.getColumnModel().getColumn(0).setPreferredWidth(22);
            table_1.getColumnModel().getColumn(1).setPreferredWidth(191);
            table_1.getColumnModel().getColumn(2).setPreferredWidth(179);
            panel_3.revalidate();
        }
    });

我可以通过更改这些字符串值来更改列标题但是我可以将new Object[][]{}更改为?

1 个答案:

答案 0 :(得分:0)

这段代码完全符合我的需要。

JButton btnRefresh = new JButton("Refresh");
        btnRefresh.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent arg0) {
                table.setModel(new DefaultTableModel(dataArray(),
                        new String[] { "first", "second", "third", "fourth" }));//Changes the column headers
                panel.revalidate();
            }
            private Object[][] dataArray() {
                Object[][] table = new Object[5][4];//5 = rows 4 = columns
                for (int i = 0; i < 5; i++) {
                    for(int j = 0; j< 4; j++){                  
                            if(j == 0){
                                table[i][j] = i+1;
                            }else if(j== 1){
                                table[i][j] = "Second Row";//Change these strings to whatever variable you want to fill the second row with, same with the other 3.
                            }else if(j== 2){
                                table[i][j] = "Third Row";
                            }else{
                                table[i][j] = "Fourth Row";
                            }
                        }
                    }
                return table;
            }
        });