jTable / Zelle auswählen via Code

Status
Nicht offen für weitere Antworten.

dhachim

Bekanntes Mitglied
Ich möchte Tabellenwerte, die eingetragen wurden, in einen Vector einlesen. Das Problem ist aber, dass die letzte Zelle verlassen werden muss, bevor der User "SEND" betätigt.
Die active Zelle wird als "" gelesen, da der Eintrag noch nicht abgelegt wurde.

Meine Idee ist, per Code Befehl die Zelle 0,0 zu aktivieren, oder ein ENTER zu simulieren. Leider habe ich weder in der API, noch im Forum eine Lösung gefunden.

Ich will einfach diesen Userfehler abfangen.

Danke schonmals

Grüße Daniel Hachim
 

The_S

Top Contributor
Wenn der User deinen Senden-Button betätigt wird die zuletzt editierte Zelle durch den oben genannten Befehl als "fertig bearbeitet" markiert und somit der Wert darin abgelegt.

Oder willst du was anderes und ich hab dich falsch verstanden?
 

thE_29

Top Contributor
JTable.getCellEditor().stopCellEditing()

Vorher nachschauen ob nicht null!

Sollte normalerweise der defaultCellEditor sein!


ggf, kann man das auch via JTable.getCellEditor(getSelectedRow(),getSelectedColumn()) falls du bei verschiedenen Zeilen verschiedene Editoren hast!
 

dhachim

Bekanntes Mitglied
hmmm ich komme erst jetzt dazu es zu testen, und habe da noch meine Probleme mit.

Ich möchte dass der Cursor, der noch auf der aktuellen Zelle gesetzt ist, umgesetzt wird, da wenn ich per getValueAt() sonst den Inhalt nicht bekomme.
Den Cell Editor versteh ich nicht. wenn ich deinen Befehl absetze, bekomme ich ne nullpointerexception an dieser Stelle.

Vielleicht kann hier jemand nen BeispielCode posten, und mir vielleicht was dazu erklären, vor allem was es sich mit diesen celleditor auf sich hat.

Danke
 

André Uhres

Top Contributor
--> table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
das müsste eigentlich damit funktionieren:
Code:
/*
 * TableSendDemo.java
 */
package table;

import javax.swing.*;
import javax.swing.table.*;
public class TableSendDemo extends JFrame {
    public TableSendDemo() {
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setSize(400,300);
        setLocationRelativeTo(null);
        
        table = new JTable();
        toolbar = new JToolBar();
        btSend = new JButton();
        
        table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
        table.setModel(new DefaultTableModel(
                new Object [][] {
                    {null}, {null}, {null}, {null}
        },
                new String [] { "Title 1" }
        ));
        getContentPane().add(new JScrollPane(table), java.awt.BorderLayout.CENTER);
        btSend.setText("Send");
        btSend.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                send();
            }
        });
        toolbar.add(btSend);
        getContentPane().add(toolbar, java.awt.BorderLayout.NORTH);
    }
    private void send(){
        Object value;
        for (int i = 0; i < table.getRowCount(); i++) {
            value = table.getValueAt(i,0);
            if(value != null){
                System.out.println(value);
            }
        }
    }
    public static void main(String args[]) {new TableSendDemo().setVisible(true);}
    private JButton btSend;
    private JTable table;
    private JToolBar toolbar;
}
 

dhachim

Bekanntes Mitglied
okay dann nochmals danke an den Hobbit und dich André. Ich habe keinen blassen schimmer warum das jetzt tut und letztens nicht. Sehr seltsam.

Code:
table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);

Was genau macht dieser Aufruf ? So wie ich das sehe wird hier in einer Hashmap ein Paar angelegt (Key/value), aber ich rufe diesen doch niemals auf. Ich habe nur diese Zeile in meine Senden Methode gestellt und schon macht es das was es soll.

Oder ist "terminateEditOnFocusLost" schon ein angelegter schlüssel ? der mit true aktiviert wird ? Wenn ja, wo stehen diese Befehle oder Methoden ? Muss man die kennen, oder wie kommt man da drauf ?
Hoffe mir bringt jem,and Licht ins Dunkel, denn in der API steht
Adds an arbitrary key/value "client property" to this component.

Verstehe es also nicht !

Danke schonmal

Grüße dhachim
 

André Uhres

Top Contributor
"terminateEditOnFocusLost" ist eine Property die in Jtable schon fest eingebaut ist
und nur darauf wartet, aktiviert zu werden. Leider habe ich keine weiteren Informationen
dazu, da diese Art Properties [noch] nirgends dokumentiert sind.
Dies ist gewissermassen ein Insider Tipp.
 

Wildcard

Top Contributor
Die Properties gehören AFAIK nicht zur public API. So SUN will werden sie in Zukunft vermutlich einige der Properties rausgreifen und Methoden dafür anbieten.
 

André Uhres

Top Contributor
Wildcard hat gesagt.:
Die Properties gehören AFAIK nicht zur public API.
So SUN will werden sie in Zukunft vermutlich einige der Properties rausgreifen und Methoden dafür anbieten.
Richtig, und rein theoretisch könnte dann Sun die Properties auch wieder wegnehmen, ist ja keine public API.
Im vorliegenden Fall ist das aber eher unwahrscheinlich.
 

dhachim

Bekanntes Mitglied
hehe gut dass ihr das erwähnt, dann weiss ich wo ich suchen muss, wobei hier bei mir im Betrieb es eher unwahrscheinlich ist, dass ich in allzunaher Zukunfgt ne neue Java Version bekomme. Darf noch mit Java 1.4.x arbeiten.
 

dhachim

Bekanntes Mitglied
Oh mann ich könnte heulen. Heute funktioniert das ganze wieder nicht. Am Code geändert hab ich an der Stelle nichts. Sehr komisch.

Es wäre echt fatal wenn der User beim speichern in der Datenbank, diesen markierten Wert nicht mitsendet, und das auch nicht merkt

Gibt es noch einen anderen Weg ?



[EDIT] Sorry, aber ich habe es nun gelöst. FocusLost event auf der Tabelle Hilft in meinem Fall . Kann es sein, dass dieser Aufruf nur auf eine Aktive Komponente funktioniert. Habe es gerade in einer Testklasse versucht, und auf einen Button gelegt, und da klappte es auch nicht.[/EDIT]

[EDIT 2] Das kann doch nicht wahr sein. Das Ding funktioniert n paar mal, dann wieder nicht, dann wieder. Echt seltsam:) [/EDIT 2]

[EDIT 3] Ich hasse Montage :) Wenn man die Methode einfach schon beim erzeugen der Tabelle aufruft, dann klappts auch. Nix Listener, nix auf Buttons legen einfach dazufügen und gut ist :)[/EDIT 3]
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E JButton in einer Zelle von JTable Allgemeine Java-Themen 16
KeTho1712 Java Swing: JTable standardmäßig füllen, sodass bei Start bereits Datensätze gespeichert sind Allgemeine Java-Themen 1
H Swing JTextArea als TableCellRenderer in JTable - wie Zeilen selektieren? Allgemeine Java-Themen 47
D JTable mit JTextAreas in den Zellen Allgemeine Java-Themen 8
X Swing JTable zeigt nichts Allgemeine Java-Themen 4
G jTable aktualisieren?! Allgemeine Java-Themen 1
S JTable - mehrere ausgewählte Rows in ArrayList Allgemeine Java-Themen 5
A Fehler beim Aktualisieren JTable Allgemeine Java-Themen 1
D falsche Zeile aus JTable in MySQL gelöscht Allgemeine Java-Themen 6
offi Drag and Drop mehrerer File aus Explorer in JTable Allgemeine Java-Themen 1
V JTable Externe Lib Allgemeine Java-Themen 2
F JTable Pfeiltasten-Verhalten Allgemeine Java-Themen 1
T jTable Gestaffelte Überschriften Allgemeine Java-Themen 22
Paul15 2D Arraylist in Jtable Allgemeine Java-Themen 1
R jTable, nur Werte zwischen 2 Double values ausgeben Allgemeine Java-Themen 3
B Klassen JTable mit einer Liste Allgemeine Java-Themen 0
A JTable Bilder Allgemeine Java-Themen 1
F JTable mit Zellen die sich durch andere Eingaben füllen Allgemeine Java-Themen 1
A JTable - CellRange auslesen Allgemeine Java-Themen 2
A jTable Renderer Allgemeine Java-Themen 5
N JTable filtern Allgemeine Java-Themen 3
hdi JTable#print & Druckgröße Allgemeine Java-Themen 6
S JTable: Model durch ein anderes ersetzen Allgemeine Java-Themen 2
G JTable: ListSelectionListener removen Allgemeine Java-Themen 8
M JTable + ArrayList Allgemeine Java-Themen 3
G Aktualisierung einer JTable erfolgt nicht zuverlässig Allgemeine Java-Themen 14
E Hintergrund einer JTable änden Allgemeine Java-Themen 2
G Darstellung von Ergebnissen einer Dokumentensuche über eine JTable Allgemeine Java-Themen 19
Iron Monkey Inhalt von JTable in die Textdatei mit StringWidth schreiben Allgemeine Java-Themen 3
P jTable getSelectedRow? Allgemeine Java-Themen 2
B JTable eigene Daten Add Methode Allgemeine Java-Themen 2
B LEERE JTable MouseListener + popupmenu Allgemeine Java-Themen 2
X xml aus Zip in JTable Allgemeine Java-Themen 2
L jTable drag & drop einzelner Zeilen Allgemeine Java-Themen 4
S JTable und Spalten löschen Frage Allgemeine Java-Themen 5
H JTable per iText in PDF: Größenanpassung möglich? Allgemeine Java-Themen 2
F XML zu JTable mit JDOM Allgemeine Java-Themen 2
E JTable wird nicht angezeigt Allgemeine Java-Themen 11
Screen ImageIcon in Cell der JTable Allgemeine Java-Themen 2
G JTable mit Keylistener geht nicht Allgemeine Java-Themen 3
C Swing JTable Vector aus DB adden Allgemeine Java-Themen 3
A Swing JTable Polymorphismus Allgemeine Java-Themen 2
trash super + JTable Allgemeine Java-Themen 7
D JTable -> 1Spalte nur zahlen Allgemeine Java-Themen 2
L JTABLE setvalueat methode! Allgemeine Java-Themen 16
C Swing Daten zwischen JTable teilen Allgemeine Java-Themen 6
hdi JTable: Sortierung von Date-Objekten Allgemeine Java-Themen 4
B JTable nach Icon sortieren Allgemeine Java-Themen 6
N Exception beim auslesen einer JTable Allgemeine Java-Themen 5
M jdesktop binding: jTable update nach Änderung... Allgemeine Java-Themen 3
D JTable mit GROUP BY Allgemeine Java-Themen 23
martin82 Regex - JTable - Filter Allgemeine Java-Themen 10
X JTable mit Checkboxen -> Setzen (true/false) der Checkboxen per Mouseklick... Allgemeine Java-Themen 3
P JTable drucken Allgemeine Java-Themen 8
A JTable Feldwerte in JTextFelder mit blättern Allgemeine Java-Themen 5
DStrohma [Erledigt] Wieso kann ich Taste 'ENTER' in JTable nicht belegen? Allgemeine Java-Themen 2
M jTable Allgemeine Java-Themen 19
D jTable und TableModel Allgemeine Java-Themen 2
B Exception bei leerem JTable verhindern Allgemeine Java-Themen 10
A Observable BeansBinding an einer JTable bzw. JXTable Allgemeine Java-Themen 3
P Textfile -> Array -> JTable Allgemeine Java-Themen 9
S JTable Aktuelisieren ber Wie ? Allgemeine Java-Themen 4
MQue JComboBox in JTable Allgemeine Java-Themen 4
J Ergebnismenge eines SQL-Queries in JTable anzeigen Allgemeine Java-Themen 3
MQue JTable alles rechts Allgemeine Java-Themen 8
G Checkboxen abfragen,Auswahl sichern, JTable laden Allgemeine Java-Themen 2
G Hibernate, JTable und Performance Allgemeine Java-Themen 17
R JTable und Cell Renderer Allgemeine Java-Themen 3
M JTable: Anzahl Zeichen bei Eingabe Allgemeine Java-Themen 2
S Welche Speicherung von Daten bei Kalendarfunktion der jtable Allgemeine Java-Themen 7
J keylistener auf jtable Allgemeine Java-Themen 19
C JTable, Abstand zwischen Zellen Allgemeine Java-Themen 2
G Eindeutiges Identifizieren einer JTable/Component z.laufzeit Allgemeine Java-Themen 2
D JTable -> ArrayIndexOutOfBoundsException bei Mausklick Allgemeine Java-Themen 2
S JTable editieren + in JTextField schreiben Allgemeine Java-Themen 7
G Daten in / für JTable beim Scrollen nachladen? Allgemeine Java-Themen 5
M JTable verändert Position auf meinem JPanel Allgemeine Java-Themen 3
P JTable Allgemeine Java-Themen 2
H JTable Löschen [Alle Zeilen aufeinmal Löschen] Allgemeine Java-Themen 6
P JTable setDataVector Allgemeine Java-Themen 2
D Scrollbalken in meiner JTable auf einmal weg. Allgemeine Java-Themen 2
P JTable Allgemeine Java-Themen 8
P JButtons mit JTable verknüpfen Allgemeine Java-Themen 16
G fehler bei JTable mit JDK1.6 Allgemeine Java-Themen 4
M CheckBox in JTable - ich verzweifle gleich Allgemeine Java-Themen 2
P JTable/Vector Allgemeine Java-Themen 5
P JTable Allgemeine Java-Themen 4
E JButton bleibt in der JTable Allgemeine Java-Themen 2
P JTable selektierte Zeile mitwandern Allgemeine Java-Themen 2
F Checkbox in JTable , eigener Cellrenderer -wie gehts weiter? Allgemeine Java-Themen 2
P JTable suchen in einer Spalte Allgemeine Java-Themen 24
G JTable wird nicht richtig aufgebaut Allgemeine Java-Themen 9
C Ausdrucken einer JTable in eine Datei mit Erhalt des Formats Allgemeine Java-Themen 3
W Columns austauschen/verschieben von jtable Allgemeine Java-Themen 3
P 3rd party JTable libraries (freeware/opensource) Allgemeine Java-Themen 19
D JTable aus Eclipse Ok, kompeliert aber nicht Allgemeine Java-Themen 6
G mySQL und JTable Allgemeine Java-Themen 7
D JTable und Buttons Allgemeine Java-Themen 16
B JScrollPane in einer JTable aktualisieren? Allgemeine Java-Themen 9
G CheckBox in JTable Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben