在特定单元格中使用JTextArea的JTable

时间:2013-02-27 03:44:08

标签: java swing listview jtable jtextarea

我仍然无法弄清楚JTables中“表中的特殊对象”的想法。我让comboBox显示在另一个表的特定单元格中,但这次我需要一个JTextArea才能显示在一个特定的单元格中。显然,我用于组合框的方法仅限于文本字段,组合框和另一个组件;我不记得哪个。无论如何,我正在宣布如下表格:

    DefaultTableModel projDTM = new DefaultTableModel();
        String[] colNames = {"Attribute","Data"};
        projDTM.setColumnIdentifiers(colNames);
        curProj = new JTable(projDTM) { 
            public boolean isCellEditable(int row, int column) {
                if(column == 0) return false;
                if(row == 0) return false;
                return true;                
            }
        };
        curProj.setFillsViewportHeight(true);
        curProj.setCellSelectionEnabled(true);
        curProj.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        curProj.getColumnModel().getColumn(0).setMaxWidth(100);
        curProj.getColumnModel().getColumn(1).setMaxWidth(400);
    JScrollPane tablePane = new JScrollPane(curProj);
        tablePane.setPreferredSize(new Dimension(500,200));

稍后使用projDTM.add();和/或projDTM.setValueAt();(如果已包含旧数据)从表的内容(例如文件或数据库)中检索表内容。恢复的项目之一是用逗号(基本上是项目数组)分隔的一串项目,我宁愿在其选择单元格中显示为列表,而不是现在的长逗号分隔字符串(为了便于阅读)。设置它的最简单方法是什么?我看到了一些关于这个暗示JTextArea的帖子,但是我不太确定如何在表格中实现它当前设置的方式。我只需要修改其中一个表格的单元格,而其余单元格应保持不变。此外,此列表中的数据是只读格式,因此它们根本不需要编辑进入的单元格,它将始终位于表格中的相同位置。

有什么建议吗?

我仍然对Java很陌生,所以对我很轻松。

编辑:仍然没有运气让特定的单元格使用JTextArea(或JTextField,JComboBox或JButton以外的任何东西)。我看的每个地方都只显示如何将整个列更改为不同的组件类型(例如table.getColumnModel().getColumn(1).setCellEditor())。它也不一定必须是JTextArea,只是某种形式的自上而下列表将显示在单个单元格中。

0 个答案:

没有答案