2015-09-25 3 views
1

Я хотел знать, есть ли способ сделать это в таблице с Java Swing.Как сделать многострочную ячейку в Jtable

Image for Example

Я работаю с таблицами, используя Vector<Vector<String>> для передачи данных каждого столбца в DefaultTableModel Object, но для этого я не знаю, что я должен использовать.

Примечание: данные таблицы динамически добавляются во время выполнения.

+0

Посмотрите на [это] (https://www.crionics.com/public/swing_examples/SwingExamples.html), смотрите раздел по таблицам. Обратите внимание, что это довольно старый, и API таблицы изменился, поэтому некоторые из них могут не работать или, возможно, некоторые из них будут исправлены. – MadProgrammer

+0

Также рассмотрите ['TablePopupEditor'] (http://stackoverflow.com/a/3591230/230513). – trashgod

ответ

2

Вы должны использовать индивидуальный TabelCellRenderer с изображением JList. Следующий код должен работать.

public class VectorTableCellRenderer extends JList<String> implements TableCellRenderer { 

    @Override 
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { 
     if (value instanceof Vector) { 
      setListData((Vector) value); 
     } 

     if (isSelected) { 
      setBackground(UIManager.getColor("Table.selectionBackground")); 
     } else { 
      setBackground(UIManager.getColor("Table.background")); 
     } 

     return this; 
    } 
} 

EDIT: Как использовать VectorTableCellRenderer

VectorTableCellRenderer renderer = new VectorTableCellRenderer(); 

    //set TableCellRenderer into a specified JTable column class 
    table.setDefaultRenderer(Vector.class, renderer); 

    //or, set TableCellRenderer into a specified JTable column 
    table.getColumnModel().getColumn(columnIndex).setCellRenderer(renderer); 

Это мой проверенный выход.

enter image description here

+0

Спасибо! Но извините за невежество, но как я могу его использовать? Я уже добавляю его в свой код, но я не знаю, как его «активировать». Благодаря! – Guolf3377

+0

Я добавил некоторые изменения, добавив код, чтобы использовать его –

+0

Спасибо, и для добавления разных элементов в разные строки? Я получил его работу, но каждая строка имеет одинаковые элементы. Я бы хотел сделать что-то вроде вашего примера. Извините, если это тривиально, я довольно noob. Благодаря! – Guolf3377

Смежные вопросы