import java.awt.Component;
import java.util.EventObject;
import javax.swing.AbstractCellEditor;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.event.CellEditorListener;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
public class TabellenTest extends JFrame
{
private static final long serialVersionUID = 1L;
public TabellenTest()
{
JFrame mainWindow = new JFrame("Mein JFrame Beispiel");
mainWindow.setLayout(null);
// JTable table = new JTable(new JTextAreaRendererTableModel());
// table.setRowHeight(0, 40);
// table.getColumnModel().getColumn(0).setCellEditor(new JTextAreaEditor());
// table.getColumnModel().getColumn(0).setCellRenderer(new JTextAreaRenderer());
DefaultTableModel data2 = new DefaultTableModel(5, 0);
data2.addColumn("");
data2.addColumn("");
data2.addColumn("");
data2.addColumn("");
data2.addColumn("");
TableColumnModel columns2 = new DefaultTableColumnModel();
columns2.addColumn(new TableColumn(0));
columns2.addColumn(new TableColumn(1));
columns2.addColumn(new TableColumn(2));
JTable informationTable1_0 = new JTable(data2, columns2);
informationTable1_0.setRowHeight(0, 80);
informationTable1_0.getColumnModel().getColumn(0).setCellEditor(new JTextAreaEditor());
informationTable1_0.getColumnModel().getColumn(0).setCellRenderer(new JTextAreaRenderer());
//JScrollPane informationAusgabeScrollPane1_0 = new JScrollPane(table);
JScrollPane informationAusgabeScrollPane1_0 = new JScrollPane(informationTable1_0);
informationAusgabeScrollPane1_0.setBounds(0, 0, 640, 200);
informationAusgabeScrollPane1_0.setVisible(true);
mainWindow.add(informationAusgabeScrollPane1_0);
mainWindow.setSize(1200, 800);
mainWindow.setVisible(true);
}
public class JTextAreaRenderer implements TableCellRenderer
{
private JTextArea textarea = new JTextArea(5, 10);
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
int row, int column)
{
textarea.setText(value == null ? "" : value.toString());
return textarea;
}
}
public class JTextAreaEditor extends AbstractCellEditor implements TableCellEditor
{
private static final long serialVersionUID = 1L;
private JTextArea textarea = new JTextArea(5, 10);
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column)
{
textarea.setText(value.toString());
return textarea;
}
public Object getCellEditorValue()
{
return textarea.getText();
}
public void addCellEditorListener(CellEditorListener arg0) {
// TODO Auto-generated method stub
}
public void cancelCellEditing() {
// TODO Auto-generated method stub
}
public boolean isCellEditable(EventObject arg0) {
// TODO Auto-generated method stub
return true; //<--- geändert von false
}
public void removeCellEditorListener(CellEditorListener arg0) {
// TODO Auto-generated method stub
}
public boolean shouldSelectCell(EventObject arg0) {
// TODO Auto-generated method stub
return false;
}
public boolean stopCellEditing() {
// TODO Auto-generated method stub
return false;
}
}
public class JTextAreaRendererTableModel extends AbstractTableModel
{
private static final long serialVersionUID = 1L;
private String value = "";
public int getRowCount()
{
return 1;
}
public void setValueAt(Object aValue, int rowIndex, int columnIndex)
{
value = aValue.toString();
}
public int getColumnCount()
{
return 1;
}
public Object getValueAt(int rowIndex, int columnIndex)
{
return value;
}
public Class<?> getColumnClass(int columnIndex)
{
return String.class;
}
public boolean isCellEditable(int rowIndex, int columnIndex)
{
return true;
}
}
public static void main(String[] args)
{
new TabellenTest();
}
}