Jtable 上的文本换行或多行

问题描述 投票:0回答:0

尝试创建一个将 n 输入到表中的系统。但是,n 很长,放不下桌子。 the 5 columns I'm trying to wrap, used TableCellRenderer for 1 column

尝试使用 TableCellRenderer 但它仅文本换行一个单元格,而我正在尝试文本换行 5 个单元格。 here is when I tried using TableCellRenderer but for multiple columns

这是我尝试使用的解决方案的链接 如何在 JTable 行内自动换行

我对编码有点陌生,非常感谢您的帮助。

TableCellRenderer 的代码

static class WordWrapCellRenderer extends JTextArea implements TableCellRenderer {
    WordWrapCellRenderer() {
        setLineWrap(true);
        setWrapStyleWord(true);
    }

    public Component getTableCellRendererComponent(JTable ncpTbl_1, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        setText(value.toString());
        setFont(new Font("Arial", Font.PLAIN, 17));
        setSize(ncpTbl_1.getColumnModel().getColumn(column).getWidth(), getPreferredSize().height);
        if (ncpTbl_1.getRowHeight(row) != getPreferredSize().height) {
            ncpTbl_1.setRowHeight(row, getPreferredSize().height);
        }
        return this;
    }
}

我用来调用 TableCellRenderer 的代码

    ncpTbl_1.getColumnModel().getColumn(0).setCellRenderer(new WordWrapCellRenderer());
    ncpTbl_1.getColumnModel().getColumn(1).setCellRenderer(new WordWrapCellRenderer());
    ncpTbl_1.getColumnModel().getColumn(2).setCellRenderer(new WordWrapCellRenderer());
java word-wrap
© www.soinside.com 2019 - 2024. All rights reserved.