Hallo,
ich hoffe ihr könnt mir bei meinem Problem helfen.
Also ich habe eine MultiLine Table, die ich über eine JTextArea in den Zellen gelöst habe:
Für die Spalten benutze ich einfach .setCellEditor(new MultiLine_JTable()), um die TextArea zu implementieren.
Mein Model für meine Table sieht wie folgt aus:
Das funktioniert auch soweit, allerdings wird die TextArea nur angezeigt, wenn die Zelle auch selektiert, also doubleclicked wurde. Ansonsten wird nur die normale TableCell angezeigt, ohne Formatierung.
Kann ich irgendwie erreichen, dass die TextArea immer im Vordergrund bleibt?
Die TextArea befülle ich per DnD, aber solange sie nicht im "Vordergrund" bleiben, muss ich auch hier immer erst selektieren, um etwas in die TextArea zu ziehen. ;/
Bin für jede Hilfe dankbar.
Gruß
NaBazTag
ich hoffe ihr könnt mir bei meinem Problem helfen.
Also ich habe eine MultiLine Table, die ich über eine JTextArea in den Zellen gelöst habe:
Code:
public class MultiLine_JTable extends DefaultCellEditor {
public MultiLine_JTable() {
super(new JTextField());
final JTextArea textArea = new JTextArea();
textArea.setWrapStyleWord(true);
textArea.setLineWrap(true);
JScrollPane scrollPane = new JScrollPane(textArea);
scrollPane.setBorder(null);
editorComponent = scrollPane;
delegate = new DefaultCellEditor.EditorDelegate() {
public void setValue(Object value) {
textArea.setText((value != null) ? value.toString() : "");
}
public Object getCellEditorValue() {
return textArea.getText();
}
};
}
}
Für die Spalten benutze ich einfach .setCellEditor(new MultiLine_JTable()), um die TextArea zu implementieren.
Mein Model für meine Table sieht wie folgt aus:
Code:
public class DienstPlan_TableModel extends AbstractTableModel{
private String[] columnNames = {"Montag",
"Dienstag",
"Mittwoch",
"Donnerstag",
"Freitag"};
public Object[][] data = {
{null, null, null, null, null}
};
public final Object[] oEintragArr = {null, null,null, null, null};
public int getColumnCount() {
return columnNames.length;
}
public int getRowCount() {
return data.length;
}
public String getColumnName(int col) {
return columnNames[col];
}
public Object getValueAt(int row, int col) {
return data[row][col];
}
public boolean isCellEditable(int row, int col) {
if (col < 0) {
return false;
} else {
return true;
}
}
}
Das funktioniert auch soweit, allerdings wird die TextArea nur angezeigt, wenn die Zelle auch selektiert, also doubleclicked wurde. Ansonsten wird nur die normale TableCell angezeigt, ohne Formatierung.
Kann ich irgendwie erreichen, dass die TextArea immer im Vordergrund bleibt?
Die TextArea befülle ich per DnD, aber solange sie nicht im "Vordergrund" bleiben, muss ich auch hier immer erst selektieren, um etwas in die TextArea zu ziehen. ;/
Bin für jede Hilfe dankbar.
Gruß
NaBazTag