JTable Model laesst sich nicht serialisieren?

Status
Nicht offen für weitere Antworten.
J

jago

Gast
Hi,

Mein TableModel laesst sich eigentlich problemlos serialisieren. Wenn ich Columns entferne schein sich aber irgendwas an mein Model zu haengen dass ich nicht serialisieren kann.

java.io.NotSerializableException: javax.swing.JTable$CellEditorRemover
at java.io_ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
at java.io_ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
at java.io_ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:416)
at javax.swing.JTable.writeObject(JTable.java:5792)
at sun.reflect.GeneratedMethodAccessor29.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)


Das wundert mich eigentlich - denn ich habe extra im TableModel folgende Methoden ueberschrieben. Ich dachte damit kann ich erreichen, dass einfach nur das TableModel und keine weiteren Objekte die via Listener z.B. dranhaengen serialisiert werden. Scheinbar hab ich mich getaeuscht. Weiss jemand einen Rat?

private void writeObject(java.io_ObjectOutputStream out) throws IOException {
out.writeObject(this.dataVector);
out.writeObject(this.columnTypes);
out.writeObject(this.columnIdentifiers);
out.writeObject(this.minimumColumnCount);
}

private void readObject(java.io_ObjectInputStream in) throws IOException, ClassNotFoundException {
this.dataVector = (Vector) in.readObject();
this.columnTypes = (Vector) in.readObject();
this.columnIdentifiers = (Vector) in.readObject();
this.minimumColumnCount = in.readInt();
}
 

Ebenius

Top Contributor
Mach vor der Serialisierung das da:
Code:
// Savely stop cell editing
final Runnable cellEditorStopper = new Runnable() {
  @Override
  public void run() {
    final TableCellEditor editor = table.getCellEditor();
    if (editor != null && !editor.stopCellEditing()) {
      editor.cancelCellEditing();
    }
  }
};

if (SwingUtilities.isEventDispatchThread()) {
  cellEditorStopper.run();
} else {
  try {
    SwingUtilities.invokeAndWait(cellEditorStopper);
  } catch (InterruptedException ex) {
    // TODO: Handle exception here!
    // reset interrupted flag
    Thread.currentThread().interrupt();
  } catch (TargetInvocationException ex) {
    // TODO: Handle exception here!
  }
}
(Code im Browser getippt, kann also Fehlerchen haben)

Ebenius
 

Ebenius

Top Contributor
Da fällt mir gerade ein: Dir ist klar, dass Du mit dem Modell auch die Tabelle serialisierst, alle Renderer, alle Editoren, das ColumnModel, den JTableHeader und noch eine Menge Zeug? Serialisierung ist nicht zum Speichern gedacht und nur mit äußerster Vorsicht und Kenntnis über die Mechanismen zu benutzen!

Ebenius
 
G

Guest

Gast
Ebenius hat gesagt.:
Da fällt mir gerade ein: Dir ist klar, dass Du mit dem Modell auch die Tabelle serialisierst, alle Renderer, alle Editoren, das ColumnModel, den JTableHeader und noch eine Menge Zeug? Serialisierung ist nicht zum Speichern gedacht und nur mit äußerster Vorsicht und Kenntnis über die Mechanismen zu benutzen!

Ebenius

Das will ich ja eben nicht. Ich will nur das TableModel serialisieren!

Deswegen habe ich auch folgende Methoden implementiert:

private void writeObject(java.io_ObjectOutputStream out) throws IOException
private void readObject(java.io_ObjectInputStream in) throws IOException, ClassNotFoundException


Kannst du mir erklaeren warum ich trotzdem Probleme hab?
 
G

Guest

Gast
Ebenius hat gesagt.:
Poste mal den gesamten StackTrace... Den oben hast Du ja gekürzt.

java.io.NotSerializableException: javax.swing.JTable$CellEditorRemover
at java.io_ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
at java.io_ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
at java.io_ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:416)
at javax.swing.JTable.writeObject(JTable.java:5792)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io_ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at java.io_ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
at java.io_ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io_ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io_ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at javax.swing.event.EventListenerList.writeObject(EventListenerList.java:240)
at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io_ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at java.io_ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
at java.io_ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io_ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io_ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
at java.io_ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
at java.io_ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io_ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io_ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at net.java.dev.properties.BasePropertyImpl.writeExternal(BasePropertyImpl.java:105)
at java.io_ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1421)
at java.io_ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1390)
at java.io_ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io_ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
at java.io_ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
at java.io_ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io_ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io_ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at framework.utils.SerializeUtils.serializeObject(SerializeUtils.java:136)
at framework.utils.SerializeUtils.serializeObjectToByteArray(SerializeUtils.java:143)
at framework.undosupport.UndoRedoManager.notifyPropertyChangeSupport(UndoRedoManager.java:167)
at framework.undosupport.UndoRedoManager.undoableEditHappened(UndoRedoManager.java:145)
at framework.undosupport.BeanModificationListener$GlobalUndoRedoManager.undoableEditHappened(BeanModificationListener.java:102)
at javax.swing.undo.UndoableEditSupport._postEdit(UndoableEditSupport.java:88)
at javax.swing.undo.UndoableEditSupport.postEdit(UndoableEditSupport.java:100)
at framework.undosupport.BeanModificationListener.propertyChanged(BeanModificationListener.java:155)
at net.java.dev.properties.container.BeanContainer.firePropertyChanged(BeanContainer.java:1145)
at net.java.dev.properties.container.BeanContainer.firePropertyChanged(BeanContainer.java:1125)
at net.java.dev.properties.container.PropertyContext.onChange(PropertyContext.java:73)
at model.ObservableProperty.set(ObservableProperty.java:66)
at net.java.dev.properties.binding.Adapter.callWhenUIChanged(Adapter.java:154)
at net.java.dev.properties.binding.swing.adapters.ToggleButtonAdapter.itemStateChanged(ToggleButtonAdapter.java:34)
at javax.swing.AbstractButton.fireItemStateChanged(AbstractButton.java:2023)
at javax.swing.AbstractButton$Handler.itemStateChanged(AbstractButton.java:2325)
at javax.swing.DefaultButtonModel.fireItemStateChanged(DefaultButtonModel.java:440)
at javax.swing.JToggleButton$ToggleButtonModel.setSelected(JToggleButton.java:255)
at javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:272)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at com.jgoodies.looks.plastic.ActiveBasicButtonListener.mouseReleased(ActiveBasicButtonListener.java:69)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
 
S

SlaterB

Gast
naja, du musst auch sagen wo das anfängt,
wer ruft wann wo wie warum die Serialisierung für das Model auf,
wo könnte das im StackTrace sein

das sieht eher so aus, als würde 'irgendjemand' die JTable und vielleicht alles andere auch serialsieren,
was läßt dich vermuten, dass es ewas mit deinem TableModel zu tun hat?

edit:
> model.ObservableProperty.set(ObservableProperty.java:66)
klingt interessant, was ist das?

vielleicht auch
> framework.utils.SerializeUtils

wird da das Model übergeben?
 
G

Guest

Gast
SlaterB hat gesagt.:
naja, du musst auch sagen wo das anfängt,
wer ruft wann wo wie warum die Serialisierung für das Model auf,
wo könnte das im StackTrace sein

das sieht eher so aus, als würde 'irgendjemand' die JTable und vielleicht alles andere auch serialsieren,
was läßt dich vermuten, dass es ewas mit deinem TableModel zu tun hat?

edit:
> model.ObservableProperty.set(ObservableProperty.java:66)
klingt interessant, was ist das?

vielleicht auch
> framework.utils.SerializeUtils

wird da das Model übergeben?


Folgende Zeilen sind intressant:
at framework.utils.SerializeUtils.serializeObject(SerializeUtils.java:136)
at framework.utils.SerializeUtils.serializeObjectToByteArray(SerializeUtils.java:143)


Hierbei wird mein Model serialisiert, dass neben ein paar Booleans und Integers das TableModel enthaelt.
 
G

Guest

Gast
Ich kann aber auch versuchen nur das TableModel alleine zu serialisieren via:

public static void serializeObject(Object o, OutputStream out) throws IOException {
ObjectOutputStream encoder = new ObjectOutputStream(out);
encoder.writeObject(o);
encoder.close();
}

und es klappt nicht sondern liefert meine gepostete Fehlermeldung. Wie gesagt, gibt es bei der Serialisierung keine Probleme wenn ich vorher kein Column vom TableModel entfernt habe. Columns entferne ich via:

// Removes the specified column from the table and the associated
// call data from the table model.
public void removeColumnAndData(JTable table, int vColIndex) {
MyDefaultTableModel model = (MyDefaultTableModel)table.getModel();
TableColumn col = table.getColumnModel().getColumn(vColIndex);
int columnModelIndex = col.getModelIndex();
Vector data = model.getDataVector();
Vector colIds = model.getColumnIdentifiers();

// Remove the column from the table
table.removeColumn(col);

// Remove the column header from the table model
colIds.removeElementAt(columnModelIndex);

// Remove the column data
for (int r=0; r<data.size(); r++) {
Vector row = (Vector)data.get(r);
row.removeElementAt(columnModelIndex);
}
model.setDataVector(data, colIds);

// Correct the model indices in the TableColumn objects
// by decrementing those indices that follow the deleted column
Enumeration e = table.getColumnModel().getColumns();
for (; e.hasMoreElements(); ) {
TableColumn c = (TableColumn) e.nextElement();
if (c.getModelIndex() >= columnModelIndex) {
c.setModelIndex(c.getModelIndex()-1);
}
}
model.fireTableStructureChanged();
}
 
S

SlaterB

Gast
Code:
public class Test
{
    public static void main(String[] args)
        throws Exception
    {
        ByteArrayOutputStream bo = new ByteArrayOutputStream();
        ObjectOutputStream o = new ObjectOutputStream(bo);
        o.writeObject(new MyModel());
    }
}


class MyModel
    extends DefaultTableModel
{
    private void writeObject(java.io.ObjectOutputStream out)
        throws IOException
    {
        new Error("Huhu").printStackTrace();
        out.writeObject("test");
    }
}
-----

java.lang.Error: Huhu
	at MyModel.writeObject(Test.java:28)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:890)
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1333)
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1284)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
	at Test.main(Test.java:17)

mein StackTrace unterscheidet sich von deinem direkt ab der ersten ObjectOutputStream-Methode,
wahrscheinlich andere Java-Version?

wie sieht der StackTrace bei dir aus mit dem Testprogramm?
baue auch in deine writeObject-Methode ein Logging ein um zu prüfen, ob diese aufgerufen wird,

in deinem StackTrace taucht invokeWriteObject() nicht auf, jedenfalls nicht an ähnlicher Position,
also an 5. Position nach dem Start der Serialisierung, stattdessen hast du defaultWriteFields(),
prüfe bitte wenn du in die ObjectOutputStream-Klasse Einblick hast und dich mit sowas auskennst, ob das vor oder nach oder alternativ zu invokeWriteObject() ausgeführt wird?
 
G

Guest

Gast
Ich habe mal ein minimales Testcase geschrieben. Solange ich die Tabelle nicht 'anfasse' kann ich serialisieren und deserialisieren. Wenn ich aber eine Zelle selektiere oder ihren Inhalt aendere gibt es beim Serialisieren eine die benannte java.io.NotSerializableException: javax.swing.JTable$CellEditorRemover.

Hier der Testcase:

Code:
package model;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;


public class SerializeTableModelTest implements Serializable {
	
	private static JTable table;
	private static MyTableModel model;


	public static void main(String[] args) {
        JFrame frame = new JFrame("Welcome!");
        
        JPanel panel = new JPanel(new BorderLayout());
        model = new MyTableModel();
        
		Object[][] dataVector = { { "1", "A" }, { "2", "B" }, { "3", "C" } };
		String[] columnIdentifiers = { "Number", "Letter" };
        
        model.setDataVector(dataVector, columnIdentifiers);
        
		table = new JTable(model);
		panel.add(new JScrollPane(table));
		panel.add(getSerializationButtons(), BorderLayout.SOUTH);
        
        frame.setContentPane(panel);
        
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setPreferredSize(new Dimension(700,800));
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
	}


	private static Component getSerializationButtons() {
		final File out = new File("tablemode.ser");
		
		JButton button;
		
		button = new JButton("Save");
		Container buttonPanel = new JPanel();
		buttonPanel .add(button);
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				try {
					ObjectOutputStream encoder = new ObjectOutputStream(new FileOutputStream(out));
					encoder.writeObject(model);
					encoder.close();
				} catch (IOException e1) {
					e1.printStackTrace();
				}
			}
		});
		
		button = new JButton("Load");
		buttonPanel.add(button);
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				try {
					ObjectInputStream decoder = new ObjectInputStream(new FileInputStream(out));
					model = (MyTableModel) decoder.readObject();
					decoder.close();
					table.setModel(model);
				} catch (Exception e1) {
					e1.printStackTrace();
				}
			}
		});
		
		return buttonPanel;
	}
	
	
	static class MyTableModel extends DefaultTableModel {
		private Vector<Class> columnTypes;
		private int minimumColumnCount;
		
		private void writeObject(java.io.ObjectOutputStream out) throws IOException {
			out.writeObject(this.dataVector);
			out.writeObject(this.columnTypes);
			out.writeObject(this.columnIdentifiers);
			out.writeInt(this.minimumColumnCount);
		}

		private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException {
			this.dataVector = (Vector) in.readObject();
			this.columnTypes = (Vector) in.readObject();
			this.columnIdentifiers = (Vector) in.readObject();
			this.minimumColumnCount = in.readInt();
		}
	}
	

}
 

Ebenius

Top Contributor
Dazu zitiere ich einfach mal aus der API-Doc:
API-Doc zu Serializable hat gesagt.:
The writeObject method is responsible for writing the state of the object for its particular class so that the corresponding readObject method can restore it. The default mechanism for saving the Object's fields can be invoked by calling out.defaultWriteObject. The method does not need to concern itself with the state belonging to its superclasses or subclasses. State is saved by writing the individual fields to the ObjectOutputStream using the writeObject method or by using the methods for primitive data types supported by DataOutput.

Natürlich wird die Klasse auf der Ebene von AbstractTableModel geschrieben, bevor die Ebene DefaultTableModel geschrieben wird. Und erst danach käme/kommt Deine writeObject()-Methode dran.

Wie ich oben schrieb: Serialisierung sollte man nicht einfach zum Speichern benutzen!

Ebenius
 
G

Guest

Gast
Ebenius hat gesagt.:
Dazu zitiere ich einfach mal aus der API-Doc:
API-Doc zu Serializable hat gesagt.:
The writeObject method is responsible for writing the state of the object for its particular class so that the corresponding readObject method can restore it. The default mechanism for saving the Object's fields can be invoked by calling out.defaultWriteObject. The method does not need to concern itself with the state belonging to its superclasses or subclasses. State is saved by writing the individual fields to the ObjectOutputStream using the writeObject method or by using the methods for primitive data types supported by DataOutput.

Natürlich wird die Klasse auf der Ebene von AbstractTableModel geschrieben, bevor die Ebene DefaultTableModel geschrieben wird. Und erst danach käme/kommt Deine writeObject()-Methode dran.

Wie ich oben schrieb: Serialisierung sollte man nicht einfach zum Speichern benutzen!

Ebenius

Ich benutz es auch nicht zum speichern. Zumindest nicht long-term.

Mir wurde im Forum empfohlen read/writeObject zu implementieren wenn ich wirklich nur das speichern will was ich brauche und nicht Zeug das irgendwie noch am TableModel dranhaengt. Ist dies nicht moeglich so wie ich es mache?

Ist es gar nicht moeglich?
 

Ebenius

Top Contributor
So wie Du es machst ist es nicht möglich. Und die Empfehlung im Forum kann ich ─ wie immer ─ nicht nachvollziehen.

Du kannst Externalizable implementieren. Damit geht's. Ich halte aber immer noch nichts davon, weil dann die Standardserialisierung ausgehebelt wird. Damit würde eine Serialisierung der gesamten Table-Komponente nicht mehr richtig funktionieren...

Ebenius
 
G

Guest

Gast
Ich wuerde am liebsten eine write Methode ueberschreiben, die ein paar Attribute speichert - aber nicht die ganze Ableitungshierarchie von Superklassen.

In read wuerde ich denn ein new MyTableModel() erstellen und es mit den gespeicherten Attributen fuellen.

Kann man das irgendwie machen?
 
S

SlaterB

Gast
wieviel vom DefaultTableModel brauchst du eigentlich?
implementiere alternativ nur das Interface, erstelle ein DefaultTableModel als Klassenattribut und delegiere die 10-15 (edit: 9) benötigten Methoden,
nicht schön, aber wohl machbar,
umso mehr, falls du bestimmte Daten/ Methoden sowieso schon selber implementierst
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P jTable model setzen AWT, Swing, JavaFX & SWT 6
O Swing JTable - Zeilen färben (mit Model) AWT, Swing, JavaFX & SWT 13
C Swing JTable verbindet sich nicht mit Model AWT, Swing, JavaFX & SWT 20
K Swing JTable Model aktualisieren AWT, Swing, JavaFX & SWT 2
T JTable Model AWT, Swing, JavaFX & SWT 5
D Swing JTable Model View Problem AWT, Swing, JavaFX & SWT 6
F unspezifizierte Frage zu JTable/ Model AWT, Swing, JavaFX & SWT 6
D JTable, Model, Fokus AWT, Swing, JavaFX & SWT 3
hdi Swing JTable: Löschen vom Daten im Model AWT, Swing, JavaFX & SWT 7
P jTable mit Model lässt sich nicht neu laden AWT, Swing, JavaFX & SWT 5
P JTable/Model füllen mit Fortschrittsbalken, Var. Rückgabetyp AWT, Swing, JavaFX & SWT 2
G JTable und Model AWT, Swing, JavaFX & SWT 21
J JTable / Model Daten verändern AWT, Swing, JavaFX & SWT 5
C [JTable] ArrayIndexOutOfBoundsException im Model AWT, Swing, JavaFX & SWT 8
Icewind JTable zeigt neue elemente im model nicht sofort an AWT, Swing, JavaFX & SWT 3
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
S HPRO und UPRO gemeinsame JTABLE gemeinsamer RENDERER ? AWT, Swing, JavaFX & SWT 1
F Swing JTable - MultiHeader inkl. Eingabemöglichkeit AWT, Swing, JavaFX & SWT 1
S JTable - Feldinhalte anzeigen AWT, Swing, JavaFX & SWT 15
D Swing JTable Spaltenbreite AWT, Swing, JavaFX & SWT 1
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
G jTable - getSelectedRow() AWT, Swing, JavaFX & SWT 3
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
P JTable Listener für die Änderung einzelner Zellen oder Rows AWT, Swing, JavaFX & SWT 2
D Tastaturabfragen CTRL+t, CTRL+E bei eine JTable, bestehend aus JTextAteas AWT, Swing, JavaFX & SWT 4
P Checkboxes in JTable nicht editable AWT, Swing, JavaFX & SWT 9
F Best-Practise: JTable Text in Zelle zu groß AWT, Swing, JavaFX & SWT 2
izoards JTable in CSV File schreiben... AWT, Swing, JavaFX & SWT 23
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
I JTable, DefaultTableModel, zwei Zahlen multiplizieren. AWT, Swing, JavaFX & SWT 26
M JTABLE / wie oft wurde gewürfelt. AWT, Swing, JavaFX & SWT 1
F JTable vergrößern AWT, Swing, JavaFX & SWT 2
H JTable: Diverse NullPointer-Exceptions zur Laufzeit AWT, Swing, JavaFX & SWT 3
J Swing Werte des JTable werden nicht angezeigt AWT, Swing, JavaFX & SWT 9
T Swing JTable cellRenderer mit jpg Hintergrundfarbe lässt sich nicht ändern. AWT, Swing, JavaFX & SWT 1
HoT Einzelne Zelle in JTable Rahmen unten setzen AWT, Swing, JavaFX & SWT 24
B JTable Zellen zusammenfügen AWT, Swing, JavaFX & SWT 3
M Swing Cell Renderer für Zeilenumbruch in JTable AWT, Swing, JavaFX & SWT 0
H JTable im JSplitPane darstellen AWT, Swing, JavaFX & SWT 2
MadMax2506 Swing JTable lädt sehr lange AWT, Swing, JavaFX & SWT 1
D Zeilenumbruch in einer JTable AWT, Swing, JavaFX & SWT 9
R Swing JTable und Spaltenausrichtung AWT, Swing, JavaFX & SWT 8
G JTable füllen AWT, Swing, JavaFX & SWT 1
H JTable TableCellEditor-Problem AWT, Swing, JavaFX & SWT 0
W Swing JTable Zeilenumbruch innerhalb einer Zelle AWT, Swing, JavaFX & SWT 3
J Datensatz in jTable ausgeben AWT, Swing, JavaFX & SWT 3
M Swing Automatischer Editorstart in JTable-Zelle AWT, Swing, JavaFX & SWT 5
ralfb1105 Swing JTable aktualisieren AWT, Swing, JavaFX & SWT 5
adiko01 JTable: Nur markierte Zeilen aus der Tabelle in CSV exportiern AWT, Swing, JavaFX & SWT 9
M JTable.setDefaultRenderer(...) greift nicht AWT, Swing, JavaFX & SWT 0
J JTable: Eingabe in Tabellenzelle korrigieren AWT, Swing, JavaFX & SWT 4
T Problem mit JTable Sortierung AWT, Swing, JavaFX & SWT 2
D JTable nach INSERT aktualisieren /refreshen AWT, Swing, JavaFX & SWT 1
D MySQL Daten in JTable anzeigen AWT, Swing, JavaFX & SWT 2
H Swing Jtable extra spalte AWT, Swing, JavaFX & SWT 6
S Swing Rechteck über JTable zeichnen (per MouseListener) AWT, Swing, JavaFX & SWT 1
S Swing Mal wieder JTable Ansicht aktualisieren AWT, Swing, JavaFX & SWT 10
A JTable mit Daten füllen AWT, Swing, JavaFX & SWT 1
VfL_Freak Swing Einzelne Zeile in jTable selektieren klappt nicht AWT, Swing, JavaFX & SWT 7
N AWT jTable CellRenderer AWT, Swing, JavaFX & SWT 6
T Swing JTable valueChanged datensatz löschen AWT, Swing, JavaFX & SWT 1
0 Swing JTable aus anderer Klasse updaten AWT, Swing, JavaFX & SWT 5
S Jtable defaultRenderer wohin damit ? AWT, Swing, JavaFX & SWT 23
T Swing JTable / FocusListener AWT, Swing, JavaFX & SWT 0
it_is_all Warum wird die JTable im JDialog nicht angezeigt? AWT, Swing, JavaFX & SWT 1
L Swing JTable im Panel darstellen AWT, Swing, JavaFX & SWT 8
T Swing Double Click bei Buttons in JTable AWT, Swing, JavaFX & SWT 9
J addRow bei JTable AWT, Swing, JavaFX & SWT 6
M Jtable gibt -1 wert bei selectedRow und Column AWT, Swing, JavaFX & SWT 3
Meeresgott Swing JTable AWT, Swing, JavaFX & SWT 4
J JTable Selection Listener funktioniert nicht AWT, Swing, JavaFX & SWT 4
C Swing Daten in JTable wiedergeben per TableModel und MVC Pattern AWT, Swing, JavaFX & SWT 16
Z Swing Drag&Drop zwischen JTable und JTree AWT, Swing, JavaFX & SWT 4
Thallius JTable dynamisch Spaltenanzahl verändern AWT, Swing, JavaFX & SWT 2
Thallius JTable dynamisch laden? AWT, Swing, JavaFX & SWT 2
B Swing JTable sortieren AWT, Swing, JavaFX & SWT 2
T Swing JTable auslesen und befüllen AWT, Swing, JavaFX & SWT 8
B JTable wird nicht angezeigt AWT, Swing, JavaFX & SWT 1
J JTable und Suchlogik AWT, Swing, JavaFX & SWT 4
Viktim Swing JTable mit Tab verlassen AWT, Swing, JavaFX & SWT 1
F Swing Spaltenbreite einer Column eines JTable auslesen AWT, Swing, JavaFX & SWT 5
Viktim Swing JTable Mit Tab druch Zeilen Wechseln AWT, Swing, JavaFX & SWT 5
Thallius Warum refrehsed mein JTable nicht? AWT, Swing, JavaFX & SWT 5
Ghostman1711 Hinzufügen ausgewählter Dateinen des Filechoosers zu einem JTable AWT, Swing, JavaFX & SWT 9
S Swing JTable - Einzelne Rows einfärben AWT, Swing, JavaFX & SWT 11
M Wert einer Zelle aus JTable ziehen AWT, Swing, JavaFX & SWT 4
K JTable getValueAt() klappt nicht immer AWT, Swing, JavaFX & SWT 1
K JTable in extra Klasse, Zugriff in einer anderen klasse nicht möglich AWT, Swing, JavaFX & SWT 26
B Swing Tabelle(JTable) filtern swing GUI AWT, Swing, JavaFX & SWT 3
P JTable - bei Eingabe Selektion AWT, Swing, JavaFX & SWT 0
P Fokus auf Zelle in JTable AWT, Swing, JavaFX & SWT 1
S Swing Deselektion in JTable verhindern AWT, Swing, JavaFX & SWT 0
D Problem mit JTable AWT, Swing, JavaFX & SWT 1
N Swing Print JTable mit AbstractTableModel AWT, Swing, JavaFX & SWT 1
Ananaskirsche Swing jTable Reihen zuviel eingefügt AWT, Swing, JavaFX & SWT 12
P im JTable die Schriftfarbe ändern AWT, Swing, JavaFX & SWT 19
T Swing JTable wird nicht angezeigt AWT, Swing, JavaFX & SWT 4
S Dreiecke in bestimmte Zellen einer JTable AWT, Swing, JavaFX & SWT 9
LexeB4F Zelle in JTable gezielt einfärben AWT, Swing, JavaFX & SWT 4
LexeB4F JTable mehrere Zelle selektieren und inhalte Löschen.. Ideen gesucht AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen

Neue Themen


Oben