ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
1578
1578
EMPFEHLEN
-
Hallo zusammen,
ich hab in meiner JTable eine Zelle, die einen Kommentar enthalten kann.
Den kann natürlich der Anwender eingeben. Ihm soll es aber auch möglich sein, mit Enter
in ne neue Zeile zu springen und diesen Kommentar nun beliebig viele Zeilen lang machen zu können.
Dazu hab ich mich umgesehen und zB das hier gefunden:
MultiLine Cell
Dieses Beispiel is ja auch ganz net, aber nur, wie viele andre auch, nur wenn die Daten per Programm in die Zelle geschrieben werden, nicht aber vom Anwender.
Wie müsste ich nun vom Prinzip her vorgehen, um dies dem Anwender zu ermöglichen?
Etwa:
- ein CellRenderer mit JTextArea als Komponente, das setLineWrap(true)
- dann das ENTER per Action der Table abfangen, rausfinden in welcher Zelle das war,
- und dann verhindern das endEditing() aufgerufen wird ?
Is das richtig
Vielen Dank,
CU Crai
-
>Hallo zusammen,
>ich hab in meiner JTable eine Zelle, die einen Kommentar enthalten kann.
>Den kann natürlich der Anwender eingeben. Ihm soll es aber auch möglich sein, mit Enter
in ne neue Zeile zu springen und diesen Kommentar nun beliebig viele Zeilen lang machen zu können.
>Dazu hab ich mich umgesehen und zB das hier gefunden:
MultiLine Cell
>Dieses Beispiel is ja auch ganz net, aber nur, wie viele andre auch, nur wenn die Daten per Programm in die Zelle geschrieben werden, nicht aber vom Anwender.
>Wie müsste ich nun vom Prinzip her vorgehen, um dies dem Anwender zu ermöglichen?
>Etwa:
>- ein CellRenderer mit JTextArea als Komponente, das setLineWrap(true)
Muss das nicht eher der CellEditor sein? Schliesslich editierst Du ja.
>- dann das ENTER per Action der Table abfangen, rausfinden in welcher Zelle das war,
Jo, klingt plausibel.
>- und dann verhindern das endEditing() aufgerufen wird ?
IIRC heißt das stopCellEditing() oder cancelCellEditing() (bei ESC).
>Is das richtig
>Vielen Dank,
>CU Crai
Jo, so würde ich zunächst vorgehen.
-
Jo, danke das wollt ich wissen, klar ich mein natürlich den CellEditor!
Dann schau ich mal,ob ich das hinkrieg....
CU Crai
-
so, nun ganz so locker flockig gehts nun doch nicht.
kann zwar, das ENTER vom Benutzer abfangen, stopCellEditing() verhindern, auch beginnt
die JTextArea eine neue Zeile, nur vergrößert sich nicht die entsprechende Zelle der JTable. Habs schon mit repaint() versucht, will aber nicht...
Was kann man da tun?
CU
Crai
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
public class MyMultLineCellEditor extends AbstractCellEditor implements TableCellEditor { private JTextArea textArea = null; public MyMultLineCellEditor() { if (textArea == null) { textArea = new JTextArea(); textArea.setLineWrap(true); textArea.setWrapStyleWord(true); textArea.addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER && getJTable().getEditingColumn() == getJTable().getColumn(GUIHelper.s_sComment).getModelIndex()) { ((MyTable)getJTable()).setEnterStatus(true); //wenn EnterStatus == true KEIN stopCellEditing() textArea.setText(textArea.getText() + '\n'); } }; public void keyTyped(KeyEvent e) {}; public void keyReleased(KeyEvent e) {}; } ); } } public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int rowIndex, int vColIndex) { textArea.setText(table.getValueAt(rowIndex,vColIndex).toString()); return textArea; } public Object getCellEditorValue() { return textArea.getText(); } }
Ähnliche Themen
-
Multiline bei Textbox
Von exiter28 im Forum .NET Windows FormsAntworten: 5Letzter Beitrag: 04.11.10, 11:03 -
table rcp multiline header
Von Zach Cordon im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 20.04.09, 15:38 -
Multiline in editFeldern [WinAPI)
Von kodak im Forum C/C++Antworten: 4Letzter Beitrag: 04.08.04, 19:58 -
Multiline Tooltip
Von Thomas Darimont im Forum Visual Basic 6.0Antworten: 0Letzter Beitrag: 25.03.04, 00:09 -
TEdit multiline
Von Interritor im Forum Delphi, Kylix, PascalAntworten: 6Letzter Beitrag: 07.05.03, 19:33





Zitieren
Login





