java - 将字符串加载到 JTable 列

标签 java swing jtable

我在使用存储在字符串中的值填充 JTable 时遇到问题。

字符串的形式为:

String factor = {"UMIN2\nT_UMIN2\nUMIN1\nT_UMIN1\nUMAX1\nT_UMAX1\nUMAX2\nT_UMAX2"};

Jtable 的代码如下所示:

    int len = factor.split("[\n\r]").length;
    final String[] columnNames = {"Factor", "Tol, min", "Exp, min", "Exp, max", "Tol, max", "Test 1", "Test 2", "Test 3", "Test 4", "Test 5", "Test 6", "Test 7", "Test 8", "Test 9", "Test 10"};
    final Object[][] data = {{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},        };
    model = new DefaultTableModel(data, columnNames);
    model.setRowCount(len);
    table = new JTable(data, columnNames);
    table.setModel(model);

    for(int x = 0; x < len; x++) table.setValueAt(factor,x,0);

    JTableHeader header = table.getTableHeader();
    header.setFont(new Font("Times New Roman", Font.BOLD, 13));
    header.setBackground(Color.black);
    header.setForeground(Color.white);

    JScrollPane scrollPane = new JScrollPane(table);
    scrollPane.setSize(988, 618);
    scrollPane.setFont(new Font("Times New Roman", Font.BOLD, 13));
    scrollPane.setLocation(10, 60);
    getContentPane().add(scrollPane);

我得到的看起来像:

[   **factor**   ]
[ UMIN2T_... ]
[ UMIN2T_... ]
[ UMIN2T_... ]
[ UMIN2T_... ]
[ UMIN2T_... ]
[ UMIN2T_... ]
[ UMIN2T_... ]
[ UMIN2T_... ]

但是我正在寻找的是每个换行条目都有自己的框,这样我看起来像:

[ **factor** ]
[ UMIN2  ]
[ T_UMIN2]
[ UMIN1  ]
[ T_UMIN1]
[ UMAX1  ]
[ T_UMAX1]
[ UMAX2  ]
[ T_UMAX2]

现在我正在使用 setValueAt 函数。

我还尝试更改框的高度并将所有数据仅放在一个 dox 中,这工作正常,但是,我需要单独的框,因为稍后我必须根据表中的其他数据对它们进行着色。

感谢您的帮助。

最佳答案

您必须拆分因子并将每个标记设置到每一行。

    int row = 0;
    for (StringTokenizer stringTokenizer = new StringTokenizer(factor, "\n"); stringTokenizer.hasMoreTokens();) {
        String token = stringTokenizer.nextToken();
        table.setValueAt(token, row++, 0);
    }

关于java - 将字符串加载到 JTable 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17939179/

相关文章:

java - 在 CellRenderer 中显示选定的行和列

java - Android、Eclipse : Item in . xml 布局未在图形布局中显示

java - 以跨平台方式启动 Java 应用程序

java - 尝试从 SwingWorker done() 方法绘制 JPanel 什么都不做

java - 如何防止 BoxLayout 的 JFormattedTextField 变大?

java - 从 keyTyped 发送火灾事件后未调用 getTableCellRendererComponent

java - 从具有未知行和列的表中获取表模型

java - 无法使用firefox的Rest Client进行post调用

java - 为什么在这个 for 循环之后有一个分号?

java - 是否可以为 JLabel 中的 ImageIcon 制作选择工具?