JTable: Wenn Zeile markiert dann Meldung. geht nicht

Status
Nicht offen für weitere Antworten.
L

Louis2

Gast
Hallo,

ich habe eine JMenuBar, dort 2 Optionen: in der JTable nur Zeile markieren oder nur Spalten markieren.
Code:
menuAction.add(new AbstractAction("Select columns and send them", 
        new ImageIcon(getClass().getResource("cursor.jpg")))
        { 
            public void actionPerformed(ActionEvent e) 
            {
                table.setRowSelectionAllowed(false);
                table.setColumnSelectionAllowed(true);
            } 
        });
        menuAction.add(new AbstractAction("Delete rows", 
        new ImageIcon(getClass().getResource("delete.jpg"))) 
        { 
            public void actionPerformed(ActionEvent e) 
            {
                table.setCellSelectionEnabled(true);
                table.setRowSelectionAllowed(true);
                table.setColumnSelectionAllowed(false);  
            } 
        });

Nun soll wenn ich eine Zeile markiere (keine Spalte) eine Meldung erscheinen. Die Meldung zu erstellen ist nicht das Problem, sondern, dass sie beim clicken auf eine Zeile erscheint.

Bisher habe ich es so gemacht
Code:
new ImageIcon(getClass().getResource("delete.jpg"))) 
        { 
            public void actionPerformed(ActionEvent e) 
            {
                table.setCellSelectionEnabled(true);
                table.setRowSelectionAllowed(true);
                table.setColumnSelectionAllowed(false);  
                int selectedRow = table.getSelectedRow();
                int ret = JOptionPane.showConfirmDialog(EmailClient.this, "Row " + (selectedRow+1) + " will be deleted, please confirm!", "Deletion validation",
                JOptionPane.YES_NO_OPTION,
                JOptionPane.WARNING_MESSAGE);
                if (ret == JOptionPane.YES_OPTION)
                model.removeRow(selectedRow);
                int numberRows = table.getRowCount();
                valueLabel.setText("               Number of rows: " + numberRows);
                valueProg.setText("x  of " + numberRows + " Emails");*/
            } 
        });

aber das dumme ist ja, dass wenn ich im Menu dann "Delete rows" anklicke er mir natürlich sofort die Meldung bringt, und das will ich ja nicht. Ich will erst auswählen können und dann soll er die Meldung bringen.

Ich brauche wohl noch einen actionPerformed für die Zeile Auswahl oder? Oder gibt es sonst noch Möglichkeiten?
 

anfänger

Mitglied
versteh ich dich richitg. Du willst eine Spalte oder Zeile markieren. Dann soll eine Meldung kommen, von wo bis wo makriert wurde und dann soll ich im Menu auswählen, welche Aktion durchgeführt werden soll. wenn das nämlich so ist, brauchst du einen Listener für die Tabelle und nicht für das Menu um die Nachricht anzuzeigen
 
L

Louis2

Gast
anfänger hat gesagt.:
versteh ich dich richitg. Du willst eine Spalte oder Zeile markieren. Dann soll eine Meldung kommen, von wo bis wo makriert wurde und dann soll ich im Menu auswählen, welche Aktion durchgeführt werden soll. wenn das nämlich so ist, brauchst du einen Listener für die Tabelle und nicht für das Menu um die Nachricht anzuzeigen

Nein.
Ich habe eine JTable, mit Daten.
Ausserdem eine JMenuBar, dort 2 Möglichkeiten die ich auswählen kann: 1. nur Zeilen markierbar (Delete rows) 2. nur Spalten markierbar (Select and send)

Wenn ich jetzt die Option 1 auswähle und dann auf eine beliebige Zeile klicken, soll die Meldung kommen (Zeile wird gelöscht, bitte bestätigen).

Das Problem ist halt wie ich bei Klick auf eine Zeile die Meldung kriege, der Rest ist einfach.
 

anfänger

Mitglied
ich hab in der java- api was gefunden, was dir vielleicht hilfreich sein könnte. Jedenfalls brauchst du einen Listener für deine JTabel.

Detecting User Selections
The following code snippet shows how to detect when the user selects a table row. By default, a table allows the user to select multiple rows — not columns or individual cells — and the selected rows need not be next to each other. Using the setSelectionMode method, the following code specifies that only one row at a time can be selected.
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
...
Code:
//Ask to be notified of selection changes.
ListSelectionModel rowSM = table.getSelectionModel();
rowSM.addListSelectionListener(new ListSelectionListener() {
    public void valueChanged(ListSelectionEvent e) {
        //Ignore extra messages.
        if (e.getValueIsAdjusting()) return;

        ListSelectionModel lsm =
            (ListSelectionModel)e.getSource();
        if (lsm.isSelectionEmpty()) {
            ...//no rows are selected
        } else {
            int selectedRow = lsm.getMinSelectionIndex();
            ...//selectedRow is selected
        }
    }
});
The code is from SimpleTableSelectionDemo.java. SimpleTableSelectionDemo also has code (not included in the preceding snippet) that changes the table's selection orientation. By changing a couple of boolean values, you can make the table allow either column selections or individual cell selections, instead of row selections.
 
L

Louis2

Gast
Interessant. Also es funktioniert schon ein bisschen, das Problem ist nun, das das ganze auch ausgeführt wird wenn ich Spalten selektiere und das darf ja nicht! Nur bei Zeilen-Selektierung!
Und ich habe das ganze auch nur explizit bei der Zeilen-Auswahl (Delete rows) angegeben.

Ausserdem werden nun auch Zellen selektiert und nicht die Zeilen, kann doch nicht sein.
Code:
menuAction.add(new AbstractAction("Select columns and send them", 
        new ImageIcon(getClass().getResource("cursor.jpg")))
        { 
            public void actionPerformed(ActionEvent e) 
            {
                table.setRowSelectionAllowed(false);
                table.setColumnSelectionAllowed(true);
            } 
        });
        menuAction.add(new AbstractAction("Delete rows", 
        new ImageIcon(getClass().getResource("delete.jpg"))) 
        { 
            public void actionPerformed(ActionEvent e) 
            {
                table.setCellSelectionEnabled(false);
                table.setRowSelectionAllowed(true);
                table.setColumnSelectionAllowed(false);
                table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 
                table.getSelectionModel().addListSelectionListener(new ListSelectionListener() 
                { 
                    public void valueChanged(ListSelectionEvent e) 
                    { 
                        ListSelectionModel lsm = (ListSelectionModel)e.getSource(); 
                        if (lsm.isSelectionEmpty())  
                        { 
                        } 
                        else 
                        { 
                            int selectedRow = table.getSelectedRow();
                            int ret = JOptionPane.showConfirmDialog(EmailClient.this, "Row " + (selectedRow+1) + " will be deleted, please confirm!", "Deletion validation",
                            JOptionPane.YES_NO_OPTION,
                            JOptionPane.WARNING_MESSAGE);
                        } 
                    } 
                }); 
             } 
        });
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
E JButton in einer Zelle von JTable Allgemeine Java-Themen 16
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