0

我制作了一个JTable并且我希望在单击按钮时将一个列表String插入到单个列中。JTable

使用这种类型的数据是否有可能:

String datelist = format.format(cal2.getTime()));
List<String> wordList = Arrays.asList(datelist);
System.out.println(wordList);

输出将是这样的:

[2013-05-10]

[2013-05-11]

[2013-05-12]

[2013-05-13]

[2013-05-14]

[2013-05-15]

[2013-05-16]

[2013-05-17]

[2013-05-18]

[2013-05-19]

[2013-05-20]

我正在使用 DefatulTableModel:

table_4 = new JTable (new DefaultTableModel(
                new Object[][] {
                        {"", "", "", "", "", "", "", "", "", "", "", ""},
                    {"", "", "", "", "", "", "", "", "", "", "", ""},
                    {"", "", "", "", "", "", "", "", "", "", "", ""},
                    {"", "", "", "", "", "", "", "", "", "", "", ""},
                    {"", "", "", "", "", "", "", "", "", "", "", ""},
                    {"", "", "", "", "", "", "", "", "", "", "", ""},
                    {"", "", "", "", "", "", "", "", "", "", "", ""},
                    {"", "", "", "", "", "", "", "", "", "", "", ""},
                    {"", "", "", "", "", "", "", "", "", "", "", ""},
                    {"", "", "", "", "", "", "", "", "", "", "", ""},
                    {"", "", "", "", "", "", "", "", "", "", "", ""},
                    {"", "", "", "", "", "", "", "", "", "", "", ""},
                    {"", "", "", "", "", "", "", "", "", "", "", ""},
                    {"", "", "", "", "", "", "", "", "", "", "", ""},
                    {"", "", "", "", "", "", "", "", "", "", "", ""},
                    {"", "", "", "", "", "", "", "", "", "", "", ""},
                },
                new String[] {
                    "", "", "", "", "", "", "", "", "", "", "", ""
4

1 回答 1

2

首先我认为你有一个错误...... DateList 是一个字符串,但你将它转换成一个列表?

List<String> wordList = Arrays.asList(datelist);

我认为这会导致零元素列表。

其次,基于https://stackoverflow.com/a/5107112/1688441等示例, 我编写了以下代码:

import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class TableDemo extends JFrame {

    DefaultTableModel model;

    public TableDemo() {

        JButton btnNewButton = new JButton("Insert Data");
        btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                model.setValueAt("Testing", 0, 0);
            }
        });
        getContentPane().add(btnNewButton, BorderLayout.NORTH);
    }
    JTable jTable1;

    public static void main(String... args) {

        TableDemo tableDemo = new TableDemo();
        tableDemo.pamnel();

        JFrame frame = new TableDemo();

    }

    public void initComponents() {
    }

    public void pamnel() {
        initComponents();
        String[] columnNames = { "", "", "", "", "", "", "", "", "", "", "", "" };

        String[][] data = { { "", "", "", "", "", "", "", "", "", "", "", "" },
                { "", "", "", "", "", "", "", "", "", "", "", "" },
                { "", "", "", "", "", "", "", "", "", "", "", "" },
                { "", "", "", "", "", "", "", "", "", "", "", "" },
                { "", "", "", "", "", "", "", "", "", "", "", "" },
                { "", "", "", "", "", "", "", "", "", "", "", "" },
                { "", "", "", "", "", "", "", "", "", "", "", "" },
                { "", "", "", "", "", "", "", "", "", "", "", "" },
                { "", "", "", "", "", "", "", "", "", "", "", "" },
                { "", "", "", "", "", "", "", "", "", "", "", "" },
                { "", "", "", "", "", "", "", "", "", "", "", "" },
                { "", "", "", "", "", "", "", "", "", "", "", "" },
                { "", "", "", "", "", "", "", "", "", "", "", "" },
                { "", "", "", "", "", "", "", "", "", "", "", "" },
                { "", "", "", "", "", "", "", "", "", "", "", "" },
                { "", "", "", "", "", "", "", "", "", "", "", "" } };
        model = new DefaultTableModel(data, columnNames);

        jTable1 = new JTable(model);

        getContentPane().add(new JScrollPane(jTable1));
        pack();
        setVisible(true);
    }
}

您可以使用model.setValueAt("VALUE HERE", ROW, COLUMN);调用来设置现有数据中的任何值。

此外,您可以使用模型对象添加新行和新列。

所以,如果你想插入新行,第一列是你的日期:

model.addRow(new String[]{ datelist, "", "", "", "", "", "", "", "", "", "", "" });
于 2013-05-30T01:37:19.087 回答