Swing JSpinner in JTable

Terry123

Mitglied
Ups, das hab ich vergessen :)

Den hab ich woanders gefunden. Er sieht folgendermassen aus:

Java:
public class SpinnerRenderer extends JLabel implements TableCellRenderer {

    final JSpinner Spinner;
    public SpinnerRenderer() {
        Spinner  = new JSpinner(new SpinnerNumberModel(0, 0, 100, 1));
        setOpaque(true);
    }

    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        if(value == null)
            Spinner.setValue(0);
        else
            Spinner.setValue(value);

        return Spinner;
    }
}

Ist da alles in Ordnung?

Weil ich die beiden Renderer aus unterschiedlichen Quellen habe, habe ich den Eindruck sie passen nicht zusammen. Kann das sein?
 
Zuletzt bearbeitet:

André Uhres

Top Contributor
Hallo Terry123,

dieser Renderer müsste passen:
Java:
        // If you want to make the cell appear like a spinner in its
        // non-editing state, also set the spinner renderer
        col.setCellRenderer(new SpinnerRenderer(values));
Java:
import java.awt.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;

public class SpinnerRenderer extends JSpinner implements TableCellRenderer {

    SpinnerRenderer(final String[] values) {
        setModel(new SpinnerListModel(Arrays.asList(values)));
    }

    public Component getTableCellRendererComponent(final JTable table,
            final Object value, final boolean isSelected,
            final boolean hasFocus, final int row, final int column) {
        setValue(value);
        return this;
    }
}

Gruß,
André
 

Terry123

Mitglied
Danke dir, aber ich hab hier wieder das Problem, das meine ganze Tabelle nicht richtig angezeigt wird.
Ausserdem kommt eine Exception in Zeile 15.
 

Terry123

Mitglied
Bei mir leider nicht :-(

Ich hab hier mal den Code, der bei mir Probleme macht:

Java:
public class TextAreaRendererDemo extends JFrame {

	private JTable table;

    public TextAreaRendererDemo() {
	

		String[] values = new String[] { "1", "2", "3" };
		
		DefaultTableModel model = new DefaultTableModel(null, new String[] {"1"});
        table = new JTable(model) {

        };
 
        this.getContentPane().add(new JScrollPane(table), BorderLayout.NORTH);
 
		table.getColumnModel().getColumn(0).setCellRenderer(new SpinnerRenderer(values)); 
        table.getColumnModel().getColumn(0).setCellEditor(new SpinnerEditor(values));
		
		//Zeile erstellen
		model.addRow(new String[] {"test"});
		
}
	
	
	
//SpinnerEditor 
	public class SpinnerEditor extends AbstractCellEditor implements TableCellEditor { 
		final JSpinner spinner = new JSpinner(); 
		
		// Initializes the spinner. 
		public SpinnerEditor(String[] items) { 
			spinner.setModel(new SpinnerListModel(java.util.Arrays.asList(items))); 
		
		}
		
		// Prepares the spinner component and returns it. 
		public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { 
			spinner.setValue(value); 
			return spinner; 
		} 

		public boolean isCellEditable(EventObject evt2) {
			if (evt2 instanceof MouseEvent) {
			  return ((MouseEvent) evt2).getClickCount() >= 2;
			}
			return true;
		  }


		
		// Returns the spinners current value. 
		public Object getCellEditorValue() { 
			return spinner.getValue(); 
		} 
	} 
	
//SpinnerRenderer 	
public class SpinnerRenderer extends JSpinner implements TableCellRenderer {
 
    SpinnerRenderer(final String[] values) {
        setModel(new SpinnerListModel(Arrays.asList(values)));
    }
 
    public Component getTableCellRendererComponent(final JTable table,
            final Object value, final boolean isSelected,
            final boolean hasFocus, final int row, final int column) {
        setValue(value);
        return this;
    }
}   


}

Exceptions bekomme ich in Zeile 39 und in Zeile 68. Es scheint ein Problem mit "value" zu geben.

Was mir nicht ganz klar ist:
Wieso muss ich beim Renderer dieses String Array übergeben?
Ich möchte in jeder Zeile einen anderen JSpinner stehen haben. Zumindest einen anderen Startwert. Wie bekomm ich das hin? Bei dieser Übergabe steht doch in jeder Zeile (sofern es funktioniert) der gleiche Spinner, oder? ???:L

Ich hoffe mir kann jemand helfen ;(
Danke!
 
Zuletzt bearbeitet:

André Uhres

Top Contributor
Hallo Terry123,

den Startwert setzen wir im Tablemodel mit model.setValueAt(..) oder model.addRow(new String[]{"3"}); Der Wert muss selbstverständlich im Spinnermodel verfügbar sein, sonst fliegt eine IllegalArgumentException. In deinem Beispiel hast du dem Tablemodel einen falschen Wert übergeben ("test"). Gültig sind in deinem Fall nur die Werte "1", "2" und "3".

Gruß,
André
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D JCheckbox und JSpinner in JTable AWT, Swing, JavaFX & SWT 9
T JSpinner in JTable: Problem beim Auslesen, funktioniert erst beim Zellwechsel AWT, Swing, JavaFX & SWT 7
M JSpinner in einer JTable? AWT, Swing, JavaFX & SWT 5
D TAB Taste innerhalb eines JSpinner AWT, Swing, JavaFX & SWT 2
C JSpinner AWT, Swing, JavaFX & SWT 6
C Hilfe bei JSpinner und JList AWT, Swing, JavaFX & SWT 1
K Swing JSpinner mit NULL AWT, Swing, JavaFX & SWT 3
V LookAndFeel JSpinner Hintergrund Farbe mit Nimbus LaF AWT, Swing, JavaFX & SWT 0
R Int aus JSpinner auslesen und Tabelle erstellen AWT, Swing, JavaFX & SWT 3
K JSpinner in passender Breite erstellen oder automatisch anpassen AWT, Swing, JavaFX & SWT 2
M JSpinner, setValue AWT, Swing, JavaFX & SWT 7
N Swing JSpinner mit Datum aber ohne Uhrzeit AWT, Swing, JavaFX & SWT 2
J Swing JSpinner mit zusätzlichem Text? AWT, Swing, JavaFX & SWT 2
B JSpinner ChangeEvent erzwingen AWT, Swing, JavaFX & SWT 6
B JSpinner Textgröße anpassen AWT, Swing, JavaFX & SWT 2
B JSpinner welche Taste? AWT, Swing, JavaFX & SWT 5
B JSpinner Enter AWT, Swing, JavaFX & SWT 7
G JSpinner ohne Tausendertrennzeichen AWT, Swing, JavaFX & SWT 5
N Wertanzeige mittels JSpinner AWT, Swing, JavaFX & SWT 3
S JSpinner AWT, Swing, JavaFX & SWT 11
G Swing JSpinner nur mit Buttons ändern AWT, Swing, JavaFX & SWT 8
C Größe von JSpinner fixieren AWT, Swing, JavaFX & SWT 4
J JSpinner + SpinnerNumberModel int auslesen AWT, Swing, JavaFX & SWT 2
C Zwei JSpinner mit dem gleichen Wert AWT, Swing, JavaFX & SWT 2
Eldorado Swing Popup-Menü mit Jspinner AWT, Swing, JavaFX & SWT 4
X Den Wert von JSpinner setzen ohne Event AWT, Swing, JavaFX & SWT 3
M JSpinner als TableCellEditor; buttons nur bei fokus sichtbar AWT, Swing, JavaFX & SWT 14
M JSpinner Font ändern AWT, Swing, JavaFX & SWT 4
Spin JSpinner AWT, Swing, JavaFX & SWT 10
T JSpinner, 3 JSpinner aber nur ein SpinnerDateModel AWT, Swing, JavaFX & SWT 7
S JSpinner der Floats anzeigt..? AWT, Swing, JavaFX & SWT 4
D Swing Eigene Komponente mit JSpinner AWT, Swing, JavaFX & SWT 4
elitebiber Swing JSpinner und die Zeit AWT, Swing, JavaFX & SWT 11
T JSpinner Problem AWT, Swing, JavaFX & SWT 6
G JSpinner umdrehen? AWT, Swing, JavaFX & SWT 2
G JSpinner und ChangeListener AWT, Swing, JavaFX & SWT 3
K JSpinner - Model <-> View, unterschiedliche Werte AWT, Swing, JavaFX & SWT 9
Tom299 JSpinner nur Zeitangabe AWT, Swing, JavaFX & SWT 13
G JSpinner Frage AWT, Swing, JavaFX & SWT 2
H JSpinner mit Kalenderwoche und Jahr AWT, Swing, JavaFX & SWT 6
P Frage zu JSpinner AWT, Swing, JavaFX & SWT 3
B JTextFiled, JCheckBox, JSpinner Eigenschaften speichern AWT, Swing, JavaFX & SWT 2
R Konvertieren von Werten im JSpinner AWT, Swing, JavaFX & SWT 2
K JSpinner Werte verschwinden bei Panel Wechsel AWT, Swing, JavaFX & SWT 2
B JSpinner passt optisch nicht zu anderen Komponenten AWT, Swing, JavaFX & SWT 2
D JSpinner ohne Edit Möglichkeit AWT, Swing, JavaFX & SWT 5
J JSpinner mit zahlen AWT, Swing, JavaFX & SWT 10
P JSpinner Objekt anstatt Zahlen sollen man Namen auswählen AWT, Swing, JavaFX & SWT 2
L JSpinner + addRow() AWT, Swing, JavaFX & SWT 3
M .txt unter Verwendung von JSpinner in Textfeld schreiben AWT, Swing, JavaFX & SWT 4
N JDK1.4- Überladen d. Methoden getValue setValue von JSpinner AWT, Swing, JavaFX & SWT 2
S JSpinner: Editieren einschränken AWT, Swing, JavaFX & SWT 4
F JSpinner FocusListener AWT, Swing, JavaFX & SWT 2
W JSpinner: Button vertikal anordnen AWT, Swing, JavaFX & SWT 2
R JSpinner rotieren AWT, Swing, JavaFX & SWT 6
A JSpinner in Dialogbox integrieren? AWT, Swing, JavaFX & SWT 3
D JSPinner Größe verändern - setSize() funktioniert nicht AWT, Swing, JavaFX & SWT 7
javasdann JSpinner & KeyListener. AWT, Swing, JavaFX & SWT 8
G jspinner schrittweite in Abhängigkeit vom aktuellen Wert AWT, Swing, JavaFX & SWT 3
G JSpinner bringt bei anklicken eine CastException AWT, Swing, JavaFX & SWT 5
flashfactor Un mal ein Problem mit JSpinner AWT, Swing, JavaFX & SWT 7
I jSpinner.getValue() AWT, Swing, JavaFX & SWT 2
G JSpinner für Datumsanzeige AWT, Swing, JavaFX & SWT 2
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

Ähnliche Java Themen

Neue Themen


Oben