JTable, DB, Zeilenumbruch

Status
Nicht offen für weitere Antworten.

T1M

Bekanntes Mitglied
Hi,
ich lese aus ner db daten in ne jtable ein.
jetzt möchte ich der übersicht halber, das ab dem x-ten zeichen das eingelesen wird ein zeilenumbruch vorgenommen wird. auch wenn man in die jtable reinschreibt soll es einen zeilenumbruch geben.
über suche, googlen hab ich nur html zeugs gefunden, aber des kann ich ja net verwenden, hab ja nix festes im code stehen, hole ja alles aus der db.
Gibbet da ne schöne methode für? oder wie is das sonst zu realisieren?
Danke,
T1M
 

Sky

Top Contributor
Die Table und der Renderer sollten ein JTextArea oder ähnliches sein, dann sollte es ohne Problem gehen.
 

T1M

Bekanntes Mitglied
hmm, und wie mache ich das?
also, ich müsste das für die table machen. denn der weise ich schon n colorTableCellRenderer zu.
 

Sky

Top Contributor
Erst mal die Frage, was willst Du genau machen!? Sollen in dem Text wirklich Zeilenumbrüche drin sein, oder sollen nur welche in der Tabelle angezeigt werden!?
 

Sky

Top Contributor
Dein muss dein Renderer ein TextArea sein, in dem LineWrap und WordWrap auf 'true' gesetzt werden.
Die Implementierung erfolgt analog zu deinem colorTableCellRenderer
 

T1M

Bekanntes Mitglied
kann ich denn der jtable mehrere renderer übergeben? ich dachte die würden sich dann überschreiben ...
 

T1M

Bekanntes Mitglied
oki, kann doch net alles vollkklatschen ..., scheiter nämlich gerad an dem renderer. :(
was muss denn da rein? und womit setze ich das auf true?
kannste bitte mal n bissl code posten???
Dank schön!
 

T1M

Bekanntes Mitglied
hab da jetzt mal was geschrieben, allerdings sagt er mir bei der übergabe an die table, das er den renderer net kennt.
The method setDefaultRenderer(Class, TableCellRenderer) in the type JTable is not applicable for the
arguments (JTextAreaRenderer)
wieso?
Code:
table.setDefaultRenderer(new JTextAreaRenderer());

Code:
public class JTextAreaRenderer extends JTextArea implements TableCellRenderer
{
	public Component getTableCellRendererComponent(JTable table, Object value,
				 boolean isSelected, boolean hasFocus,
			 int row, int column)
	{
		setLineWrap(true);
		//setWordWrap(true); The method setWordWrap(boolean) is undefined for the type JTextAreaRenderer
		return this;
	}
}
 

T1M

Bekanntes Mitglied
Code:
table.setDefaultRenderer(String.class, new JTextAreaRenderer());
so, jetzt kennt ers... :roll:
nur, wie benutze ich des jetzt. also, wie bekomme ich da die umbrüche rein?
 

Sky

Top Contributor
Du bestimmst für deine Spalte eine Breite und setLineWrap(true); und setWrapStyleWord(true) sorgt dafür, dass deine Wörter bei Erreichen der Spaltenbreite umgebrochen werden.
 

T1M

Bekanntes Mitglied
also, ich hatte schon allen spalten ne gewisse breite zugeordnet.
Code:
//Spaltenbreite festsetzen
	   TableColumn tcolumn = table.getColumn("Station");
	   tcolumn.setMinWidth(40);
	   tcolumn.setMaxWidth(40);
	   tcolumn = table.getColumn("Name");
	   tcolumn.setMinWidth(120);
	   tcolumn.setMaxWidth(120);
           ...
aber wenn ich jetzt in eine spalte schreibe, dann is nach wie vor alles in einer zeile, und einen teil sieht man halt net.
 

T1M

Bekanntes Mitglied
was denn für einen editor?
reicht das
Code:
table.setDefaultRenderer(String.class, new JTextAreaRenderer());
denn nicht? (bei String.class bin ich mir net sicher ob des des richtige is)
meinen ColorTableCellRenderer hab ich auch nur so bekanntgegeben.
 

T1M

Bekanntes Mitglied
a-ha ..., und weiter?
editor sagt mir mal jetzt goar nix.
flerdammt, warum muß das alles so besch*** kompliziert sein?! :x
 

Sky

Top Contributor
Guck Dir mal das Interface TableCellEditor an.

Der Editor muss ebenso der Tabelle bzw. Spalte zugewiesen werdne.
 

T1M

Bekanntes Mitglied
so, hab mir, faq sei dank, so n tablecelleditor zusammengebastelt und übergebe den so:
Code:
table.setDefaultEditor(String.class, new JTextAreaRenderer());
bei setDefaultEditor meckert er:
The method setDefaultEditor(Class, TableCellEditor) in the type JTable is not applicable for the
arguments (Class, JTextAreaRenderer)
 

T1M

Bekanntes Mitglied
ich depp!
das kommt davon wenn man zu lange auf seinen code schaut ...

edit: funzt aber trotzdem net ... :?
 

T1M

Bekanntes Mitglied
soka, das is mein editor. im grunde der gleiche wie aus der faq ...
Code:
import javax.swing.JTextArea;
import java.awt.Component;
import java.util.EventObject;
import javax.swing.JTable;
import javax.swing.table.TableCellEditor;
import javax.swing.event.CellEditorListener;
import java.util.Vector;
import javax.swing.event.ChangeEvent;

public class JTextAreaEditor extends JTextArea implements TableCellEditor
{
	private Vector listeners = new Vector(); 
	
	public JTextAreaEditor()
	{
		setLineWrap(true);
		setWrapStyleWord(true);
	}
	public Component getTableCellEditorComponent(JTable table, Object value,
	         boolean isSelected, int row, int column)
	{
		setLineWrap(true);
		setWrapStyleWord(true);
	    return this;
	} 
	
	   // Gibt an, ob die Zelle editierbar ist. Das EventObject kann
	   // ein MouseEvent, ein KeyEvent oder sonst was sein.
	   public boolean isCellEditable(EventObject anEvent)
	   {
	      return true;
	   }
	   
	   // Gibt an, ob die Editor-Component selektiert werden muss, um
	   // sie zu benutzen. Diese Editor soll immer selektiert werden,
	   // deshalb wird hier true zurückgegeben
	   public boolean shouldSelectCell(EventObject anEvent)
	   {
	      return true;
	   }
	   
	   // Gibt den aktuellen Wert des Editors zurück.
	   public Object getCellEditorValue()
	   {
	      return this;
	   } 
	   
	   // Bricht das editieren der Zelle ab
	   public void cancelCellEditing()
	   {
	      fireEditingCanceld();
	   }
	   
	   // Stoppt das editieren der Zelle, sofern möglich.
	   // Da der JSpinner immer einen gültigen Wert anzeigt, kann auch
	   // jederzeit gestoppt werden (return-Wert = true)
	   public boolean stopCellEditing()
	   {
	      fireEditingStopped();
	      return true;
	   }
	   
	   // Benachrichtig alle Listener, dass das Editieren abgebrochen wurde
	   protected void fireEditingCanceld()
	   {
	      ChangeEvent e = new ChangeEvent( this );
	      for( int i = 0, n = listeners.size(); i<n; i++ )
	         ((CellEditorListener)listeners.get( i )).editingCanceled( e );
	   }
	   
	   // Benachrichtig alle Listener, dass das Editieren beendet wurde
	   protected void fireEditingStopped()
	   {
	      ChangeEvent e = new ChangeEvent( this );
	      for( int i = 0, n = listeners.size(); i<n; i++ )
	         ((CellEditorListener)listeners.get( i )).editingStopped( e );
	   } 
	   // Möglicherweise möchte jemand über Ereignisse des Editors
	   // informiert werden
	   public void addCellEditorListener(CellEditorListener l)
	   {
	      listeners.add( l );
	   } 
	   
	   // Ein CellEditorListener entfernen
	   public void removeCellEditorListener(CellEditorListener l)
	   {
	      listeners.remove( l );
	   } 
}
wo muß setLineWrap(true); setWrapStyleWord(true); hin, damit der zeilenumbruch funzt???
 

hugo

Bekanntes Mitglied
Hi,

ich hab' ein Problem mit dem hier vorgestellten CellRenderer. Irgendwie funktioniert das mit dem Zeilenumruch nicht. Ich habe den CellRenderer eins zu eins kopiert. Trotzdem werden die Daten nur einzeilig in der Tabelle angezeigt und am Ende mit ... abgeschnitten. Habe meine Tabelle in eine JScrollPane gepackt.

Hier mein Aufruf der Tabelle:
Code:
String[][] data = MessageLogger.translateMessages(logger.getAllMessages());
DefaultTableModel tModel = new DefaultTableModel(data, header);
tModel.fireTableDataChanged();
        
JTable msgLog = new JTable(tModel);
msgLog.setDefaultRenderer(String.class, new JTextAreaRenderer());

TableColumnModel tblColMod = msgLog.getColumnModel();
tblColMod.getColumn(0).setMaxWidth(60);
tblColMod.getColumn(1).setMaxWidth(33);
tblColMod.getColumn(2).setMaxWidth(190);

msgLog.setRowHeight(30);
msgLog.doLayout();
msgLog.setVisible(true);
        
dialog = new JScrollPane(msgLog);
dialog.setSize(290,420);
dialog.setLocation(0,51);
dialog.setBorder(null);
dialog.setViewportView(msgLog);

hugo
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C jTable in .txt - versteckter Zeilenumbruch? Java Basics - Anfänger-Themen 6
richis-fragen JTable den angezeigten WERT nicht den Wert aus dem Model ausgeben. Java Basics - Anfänger-Themen 3
richis-fragen JTable Header ausgeblendete (width = 0) nicht per mouseDragged aufziehen. Java Basics - Anfänger-Themen 9
richis-fragen JTable sowohl Spaltennamen wie auch Spaltenbeschriftungen Java Basics - Anfänger-Themen 7
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
G JTable Listselectionlistener friert das Programm ein Java Basics - Anfänger-Themen 8
Mady Daten von JList & Combobox in JTable adden Java Basics - Anfänger-Themen 2
W Liste mit Listen in JTable darstellen Java Basics - Anfänger-Themen 1
J Zelleninhalt einer Jtable löschen Java Basics - Anfänger-Themen 2
E JTable einzelne Zelle färben Java Basics - Anfänger-Themen 2
thobren jtable arraylist Java Basics - Anfänger-Themen 12
thobren JTable Icon Java Basics - Anfänger-Themen 1
R Compiler-Fehler JTable mit XML befüllen | The constructor JTable(Object[], String[]) is undefined Java Basics - Anfänger-Themen 10
H Kapselung JProgressBar in JTable, aber getValueAt() greift nicht Java Basics - Anfänger-Themen 7
G JTable, Zeile auswählen und Ergebnis an Schaltfläche übergeben Java Basics - Anfänger-Themen 4
J Jtable Eingabe nach Klick ausserhalb der Tabelle übernehmen Java Basics - Anfänger-Themen 6
J JTable Spalteninhalt löschen Java Basics - Anfänger-Themen 1
J JTable Titel wird nicht angezeigt Java Basics - Anfänger-Themen 6
B jTable Spalte summieren Java Basics - Anfänger-Themen 7
N JTable auslesen Java Basics - Anfänger-Themen 6
O JTable in Excel mit Farben Java Basics - Anfänger-Themen 8
O Kommentar auf JTable Zelle Java Basics - Anfänger-Themen 2
M Jtable Reenderer Java Basics - Anfänger-Themen 0
O Popoup Menü im JTable richtig anzeigen Java Basics - Anfänger-Themen 6
M Jtable änderung updaten Java Basics - Anfänger-Themen 2
O JTable Suchfunktion Java Basics - Anfänger-Themen 2
M jTable bekommt null Java Basics - Anfänger-Themen 1
M JTable an andere Klasse übergeben Java Basics - Anfänger-Themen 2
M Datenbank in jTable Laden Java Basics - Anfänger-Themen 49
M Klasse in JTable einfügen Java Basics - Anfänger-Themen 7
S JTable Java Basics - Anfänger-Themen 16
S JTable mit Daten füllen Java Basics - Anfänger-Themen 7
L JTable Tagebuch Spaltenhöhe verändern Java Basics - Anfänger-Themen 3
S JTable - Filter an anderen Colums Java Basics - Anfänger-Themen 2
R JTable Suchfunktion mit SQL Daten Java Basics - Anfänger-Themen 2
C JTable update mit MySQL Datenbank Java Basics - Anfänger-Themen 1
C Best Practice JTable in MVC Pattern Java Basics - Anfänger-Themen 7
J Daten einer Textdatei in ein JTable importieren. Java Basics - Anfänger-Themen 3
A zykl. Aktualisierne JTable Java Basics - Anfänger-Themen 9
C Endlosschleife bei füllen von Daten im JTable Java Basics - Anfänger-Themen 5
C Werte aus JTable auslesen Java Basics - Anfänger-Themen 4
A Probleme beim zykl. aktulisieren von Daten in JTable Java Basics - Anfänger-Themen 3
V JTable welcher Listener ? Java Basics - Anfänger-Themen 7
D Falsche Zeile wird in JTable gelöscht Java Basics - Anfänger-Themen 6
D MySQL Abfrage in JTable speichern Java Basics - Anfänger-Themen 43
D JTable Zeile wird nicht in MySQL gelöscht Java Basics - Anfänger-Themen 16
D JTable Zeilen löschen Java Basics - Anfänger-Themen 5
C Klassen JTable wird ohne Header aufgebaut Java Basics - Anfänger-Themen 6
K (JTable) Text einer Zelle auf der linken Seite kürzel Java Basics - Anfänger-Themen 2
B Kniffel JTable Java Basics - Anfänger-Themen 5
N JTable flackert Java Basics - Anfänger-Themen 8
T JTable Daten aus txt datei Java Basics - Anfänger-Themen 3
J ArrayList wird in JTable falsch angezeigt Java Basics - Anfänger-Themen 0
J Eintragen von Personen in JTable Java Basics - Anfänger-Themen 4
X JTable mit grünen und roten Punkten Java Basics - Anfänger-Themen 2
LexeB4F DEL --> JTable Zelleninhalt Java Basics - Anfänger-Themen 3
R JTable Auslesen Java Basics - Anfänger-Themen 1
Crazynet jTable erste Zeile mit deffinierten Werten Java Basics - Anfänger-Themen 0
K Collections Sortieren nach zweiter Spalte in JTable Java Basics - Anfänger-Themen 18
J JTable Wert gleich überschreiben Java Basics - Anfänger-Themen 6
S Zeile entfernen aus JTable Java Basics - Anfänger-Themen 15
S JTable clonen Java Basics - Anfänger-Themen 5
H Best Practice PDF JTable Java Basics - Anfänger-Themen 4
S In JTable Zeile selektieren mit Mausklick Java Basics - Anfänger-Themen 16
D JTable Probleme beim Sortieren von Zahlen. Java Basics - Anfänger-Themen 6
M JTable mit XML datei befüllen Java Basics - Anfänger-Themen 1
F Zeile bei JTable hinzufügen Java Basics - Anfänger-Themen 6
K JTable Bild einfügen Java Basics - Anfänger-Themen 1
M [JTable] getValue throws ArrayOutOfBoundException Java Basics - Anfänger-Themen 1
B JTable - Highlighter ??? Java Basics - Anfänger-Themen 3
S JTable LinkedList <Objekt> befüllen Java Basics - Anfänger-Themen 1
S JTable dynamisch mit Datenbankinhalten füllen Java Basics - Anfänger-Themen 6
W JTable mit einem JButton-Array füllen Java Basics - Anfänger-Themen 4
O JScrollPane zu gross für JTable Java Basics - Anfänger-Themen 2
L JTable Row selected -> fireTableDataChange do nothing. Java Basics - Anfänger-Themen 3
E JTable + TableModel updaten? Java Basics - Anfänger-Themen 1
O java.lang.IndexOutOfBoundsException JTable autoSort Java Basics - Anfänger-Themen 5
F JTable adding Row Java Basics - Anfänger-Themen 5
P jTable getColumnClass, mit unterschiedlichen Klassen in einer Column? Java Basics - Anfänger-Themen 5
M Eingabe in JTable bei Eingabe korrigieren Java Basics - Anfänger-Themen 2
Z jtable problem (das tausendste??) Java Basics - Anfänger-Themen 12
J JTable Java Basics - Anfänger-Themen 7
T JTable Java Basics - Anfänger-Themen 2
T JTable einzelne Zeilen löschen Java Basics - Anfänger-Themen 3
S Farbe eine Zeile in JTable ändern, wenn JButton geklickt wurd Java Basics - Anfänger-Themen 4
Uzi21 jTable / Inhalt speichern Java Basics - Anfänger-Themen 2
M Problem mit JTable und Model Java Basics - Anfänger-Themen 3
F Methoden JTable + 2 For-Schleifen Java Basics - Anfänger-Themen 4
C jtextfield und jtable Java Basics - Anfänger-Themen 34
X JTable mit Inhalten aus JTextField o.ä. füllen Java Basics - Anfänger-Themen 4
G JTable: SelectionListener Problem Java Basics - Anfänger-Themen 2
G JTable: Werte in Tabelle direkt ansprechen Java Basics - Anfänger-Themen 3
S Icons in JTable per ResultSet Java Basics - Anfänger-Themen 5
G Spalte in JTable unsichtbar machen, Zugriff auf Daten ermöglichen Java Basics - Anfänger-Themen 2
M Zelle von JTable mit Rahmen versehen Java Basics - Anfänger-Themen 4
G JTable: Inhalt einer selektierten Zeile speichern Java Basics - Anfänger-Themen 2
G JTable: mehrzeilige Zellen erstellen Java Basics - Anfänger-Themen 2
W Problem JTable Java Basics - Anfänger-Themen 5
M JTable wird nicht aktualisiert Java Basics - Anfänger-Themen 4
D jProgressBar soll bei 100% sein wenn sql Abfrage inkl. jTable schreiben fertig ist... Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben