Popoup Menü im JTable richtig anzeigen

OliW

Aktives Mitglied
Einen schönen guten Abend,

ich habe eine Frage an euch. Ich habe einen JTable, dessen Positionen (Reihen) mit unterschiedlichen Farben dargestelt werden.
Ich möchte ein Popup Menü bei Klick auf die rechte Maustaste erzeugen, und zwar abhängig davon, ob die Zeile farbig ist oder nicht.
Dazu habe ich eine Klasse "showPopup" geschrieben.

Und Ihr werdet es schon erraten. Funktioniert nicht so wie es soll.
Die Methode springt bei Rechtsklick auf eine weiße Zelle direkt in die zweite Bedingung und es wird das falsche Popup angezeigt, nämlich daß, welches für farbige Zellen gedacht ist.

Demnach wird die Bedingung >> if (c.getBackground() == null) << nicht richtig geprüft.
Zur Info, ich habe den betreffenen Zellen auch schon eine andere Farbe zur Prüfung zugeordnet und dann die Bedingung auf diese Farbe aufgerufen,
also if (c.getBackground() == Color.GREEN) <<
Gleiches Ergebniss.

Kann mir jemand nen Tipp geben wo der Fehler hängt?

Hier die Methode.

Dank euch

Code:
public class showPopup  extends MouseAdapter {

            @Override
            public void mouseClicked(MouseEvent e) {
                Component c = e.getComponent();
        
                
                 if (e.getButton() ==  MouseEvent.BUTTON3) { 
                    if (c.getBackground() == null) {
                        
                        c.add(rowBestPopup);
                        rowBestPopup.show(e.getComponent(), e.getX(), e.getY());
                    } else {
                    
                c.add(rowPopup);
                 rowPopup.show(e.getComponent(), e.getX(), e.getY());
                    }
                }
                
            }

            
            
         }
 

mihe7

Top Contributor
Kann mir jemand nen Tipp geben wo der Fehler hängt?
1. der Background ist nicht null
2. Color ist ein Referenztyp und die vergleicht man nicht per == sondern per equals (im Hintergrund wird z. B. oft ColorUIResource statt Color verwendet)
3. sich von der Farbe abhängig zu machen, erscheint mir wenig sinnvoll. Die Farbe ist ja in der Regel Ausdruck eines Zustands und da wäre es doch vernünftig, sich nach dem Zustand und nicht nach der Darstellung des Zustands zu richten.
 

OliW

Aktives Mitglied
Ja, die Farbe gibt den Status wieder. Ich habe die Bedingung jetzt an den Status geküpft und es funktionuiert,
Trotzdem finde ich es seltsam daß obiger Code nicht funktioniert. Denn selbst wenn ich null durch eine Farbe ersetzte wird das falsche Popup angezeigt.

Trotzdem vielen Dank
 

mihe7

Top Contributor
Ach, Du rufst die Hintergrundfarbe der Tabelle ab, brauchst aber die der Zelle. Hier müsstest Du über den CellRenderer gehen. Das ist erstens noch hässlicher und wie oben schon geschrieben: sinnvoll ist das sowieso nicht.

Java:
int col = table.columnAtPoint(e.getPoint());
int row = table.rowAtPoint(e.getPoint());
Color background = table.prepareRenderer(
        table.getCellRenderer(row, col), row, col).getBackground();
 

OliW

Aktives Mitglied
Ach, Du rufst die Hintergrundfarbe der Tabelle ab, brauchst aber die der Zelle. Hier müsstest Du über den CellRenderer gehen. Das ist erstens noch hässlicher und wie oben schon geschrieben: sinnvoll ist das sowieso nicht.

Java:
int col = table.columnAtPoint(e.getPoint());
int row = table.rowAtPoint(e.getPoint());
Color background = table.prepareRenderer(
        table.getCellRenderer(row, col), row, col).getBackground();
Danke.Verstanden ! Damit macht das Sinn, daß immer die selbe Farbe herauskommt. o_O
Ich denke aber auch, das war ne nicht so schlaue Idee über die Hintergrundfarbe zu gehen. Da hast du recht. Über den Status geht es einfacher.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Wert in Dropdown Menü kursiv schrieben Java Basics - Anfänger-Themen 19
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
H Befehle in einem Menü aktivieren Java Basics - Anfänger-Themen 1
J Zusätzliches Menü in einem Terminal erstellen Java Basics - Anfänger-Themen 0
J Panel und Menü Java Basics - Anfänger-Themen 6
J Java Anwendungs-Menü Java Basics - Anfänger-Themen 8
S Hallo und Fragen zu Arbeitsverzeichnis und Menü Java Basics - Anfänger-Themen 8
J Menü mit mehreren Bildern Java Basics - Anfänger-Themen 5
R Switch: Nach durchlaufen des Case wieder zum Menü Java Basics - Anfänger-Themen 3
K Erste Schritte Wie mache ich weiter? (Spiel-Menü) Java Basics - Anfänger-Themen 9
G menü in simulation Java Basics - Anfänger-Themen 3
K Drop-down Menü (swing) Java Basics - Anfänger-Themen 4
1 Menü mit Buttons erstellen Java Basics - Anfänger-Themen 10
M Login-Menü Java Basics - Anfänger-Themen 7
MisterSeven Netbeans - Dropdown Menü erstellen? Java Basics - Anfänger-Themen 4
A Menü Java Basics - Anfänger-Themen 7
C kleines Menü erzeugen und anzeigen Java Basics - Anfänger-Themen 11
M Problem beim Ereignishandling mit Menü Java Basics - Anfänger-Themen 2
TheKing Java-Menü Machen Java Basics - Anfänger-Themen 7
P Baum-Menü in Java Java Basics - Anfänger-Themen 5
J Java-Menü Machen Java Basics - Anfänger-Themen 7
Antoras Tab über Menü ansteuern Java Basics - Anfänger-Themen 2
G Rechtsklick Menü? Java Basics - Anfänger-Themen 2
G Strich im Menü Java Basics - Anfänger-Themen 2
D JApplet menü Java Basics - Anfänger-Themen 8
A Menü aktivieren Java Basics - Anfänger-Themen 5
N Von einem Menü in Untermenü Java Basics - Anfänger-Themen 3
M Menü Programmieren Java Basics - Anfänger-Themen 2
T Wie kann ich andere Programme in Java über ein Menü öffnen? Java Basics - Anfänger-Themen 12
M Einfaches Menü erstellen Java Basics - Anfänger-Themen 106
M Dialog aus Menü aufrufen Java Basics - Anfänger-Themen 13
T Rechsklick menü erstellen Java Basics - Anfänger-Themen 2
J Menü-strip beenden-knopf mit Ende des Programms belegen ? Java Basics - Anfänger-Themen 2
D Menü soll immer da bleiben - Frames sollen wechseln Java Basics - Anfänger-Themen 3
S RadioButtons im Menü Java Basics - Anfänger-Themen 5
M statt drop down menü - buttons Java Basics - Anfänger-Themen 5
S Menü addActionListener Java Basics - Anfänger-Themen 11
A Java-Konsolen Menü Java Basics - Anfänger-Themen 6
A Aus dem menü heraus andere Felder bearbeiten Java Basics - Anfänger-Themen 2
C Swing-Fenster mit Menü- und Toolbar Java Basics - Anfänger-Themen 3
F Menü erstellen Java Basics - Anfänger-Themen 14
G PopupMenu; Welches Menü war's denn nun? Java Basics - Anfänger-Themen 6
B Was mach ich falsch mit einem Menü in Swing Java Basics - Anfänger-Themen 2
T Problem bei Menü Java Basics - Anfänger-Themen 2
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
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

Ähnliche Java Themen

Neue Themen


Oben