JComponent anklicken und "entklicken"

Hatsi09

Aktives Mitglied
Hallo Java-Gemeinde

ich stehe vor einem Problem. Ich habe ein JTextField namens 'label', welches normal den Hintergrund des JPanels / JFrames hat. Wenn ich draufklicke, soll der Hintergrund weiß werden. Soweit habe ich das schon programmiert:
Java:
label.addMouseListener(new MouseAdapter() {
    @Override
    public void mouseClicked(MouseEvent e) {
        System.out.println("CLICKED");
        label.setBackground(Color.WHITE);
        repaint();
    }
});

Was ich jetzt machen will ist, wenn man jetzt irgendwo anderes (außer auf das JTextField) hinklickt, soll die Hintergrundfarbe wieder der des JPanels werden und der geänderte Text gespeichert werden (so ähnlich wie im Windows bei den Dateien, wenn man eine Datei umbenennt :)). Ich habe schon probiert mit der mouseExited-Methode, aber das Event wird ausgelöst, wenn man ohne klicken den Bereich des JTextFields mit dem Cursor verlässt.
Gibt es einen solchen Listener, der quasi ausgelöst wird, wenn man eine Komponente "entklickt", indem man auf einen anderen Bereich klickt?

Vielen Dank für eure Hilfe im Vorraus;)
 

Hatsi09

Aktives Mitglied
ok ja vielen Dank, mein Code wäre jetzt :
Java:
label.addFocusListener(new FocusAdapter() {
    @Override
    public void focusGained(FocusEvent e) {
        System.out.println("CLICKED");
        label.setBackground(Color.WHITE);
        repaint();
    }

    @Override
    public void focusLost(FocusEvent e) {
        System.out.println("UNCLICKED");
        label.setBackground(getBackground());
        repaint();
    }
});

Das funktioniert teilweise, also wenn ich auf ein anderes JComponent klicke, funktioniert es, wenn ich aber nur irgendwo in das JFrame reinklicke, zwischen den Elemente, reagiert es nicht. Gibt es da eine Möglichkeit, dass es trotzdem funktioniert?
 

Hatsi09

Aktives Mitglied
ok danke, das habe ich versucht, hab sowohl mein Panel als auch mein JFrame fokussierbar gemacht, aber das ändert nichts
 

mihe7

Top Contributor
OK, beim JPanel braucht es etwas mehr Arbeit :)
Java:
import java.awt.Color;
import java.awt.event.*;
import javax.swing.*;

public class Test {

    public void run() {
        JTextField tf = new JTextField(30);
        tf.addFocusListener(new FocusListener() {
            @Override public void focusGained(FocusEvent e) {
                tf.setBackground(Color.blue);
            }
            @Override public void focusLost(FocusEvent e) {
                tf.setBackground(Color.white);
            }
        });

        JPanel panel = new JPanel();
        panel.setFocusable(true);
        panel.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                panel.requestFocusInWindow();
            }
        });
        panel.add(tf);

        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.add(panel);
        frame.setSize(800, 600);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> new Test().run());
    }
}
 

Hatsi09

Aktives Mitglied
perfekt danke, das wars, jetzt funktioniert es, bei mir war es sogar ein JScrollPane, aber so funktioniert es da auch:p
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Batik: Inhalt JComponent to SVG? AWT, Swing, JavaFX & SWT 6
L JComponent aus JPanel anhand Mausposition ermitteln AWT, Swing, JavaFX & SWT 10
S Swing Schwierigkeiten mit JComponent AWT, Swing, JavaFX & SWT 4
T Swing JComponent vergrößern AWT, Swing, JavaFX & SWT 4
L JComponent und MouseMotionListener AWT, Swing, JavaFX & SWT 2
M Mouse Click Event ohne ein JComponent Objekt AWT, Swing, JavaFX & SWT 3
L Eigene JComponent in GridLayout AWT, Swing, JavaFX & SWT 9
Z JComponent's requestFocus() - Wieso nicht immer anwendbar? AWT, Swing, JavaFX & SWT 1
Z Java-Swing : JComponent AWT, Swing, JavaFX & SWT 2
W JComponent - ComponentListener - resized / moved AWT, Swing, JavaFX & SWT 5
Developer_X Wie heißt das JComponent hier? AWT, Swing, JavaFX & SWT 2
A Swing Eigene JComponent Scrollable AWT, Swing, JavaFX & SWT 6
R JComponent auf Canvas AWT, Swing, JavaFX & SWT 8
A Abgeleitete JComponent wird nicht gezeichnet AWT, Swing, JavaFX & SWT 10
A JComponent Größe AWT, Swing, JavaFX & SWT 8
T jcomponent wird nicht angezeigt AWT, Swing, JavaFX & SWT 9
S Eigene JComponent Image zeichnen AWT, Swing, JavaFX & SWT 3
H Swing "Drag and Drop" eines JComponent über ein JPanel AWT, Swing, JavaFX & SWT 2
N 2D-Grafik RTF in eigener JComponent AWT, Swing, JavaFX & SWT 2
D Swing JComponent zeichnen ohne sie zur Oberfläche hinzuzufügen AWT, Swing, JavaFX & SWT 2
P JComponent / JLabel drehen (Rotation) AWT, Swing, JavaFX & SWT 2
D JComponent erweitern AWT, Swing, JavaFX & SWT 4
1 JComponent -> java.lang.NullPointerException AWT, Swing, JavaFX & SWT 13
M 2x JComponent in einem JFrame darstellen? AWT, Swing, JavaFX & SWT 7
StupidAttack Animation, JComponent AWT, Swing, JavaFX & SWT 3
P Swing Eigene Komponente Entwickeln - erben von JComponent oder JPanel? AWT, Swing, JavaFX & SWT 5
B Wechsel JTextArea und JComponent AWT, Swing, JavaFX & SWT 9
S Unterscheiden ob ein Graphics-Objekt von einer JComponent oder einem BufferedImage kommt..? AWT, Swing, JavaFX & SWT 4
H JComponent == JTextfield? AWT, Swing, JavaFX & SWT 4
C Ermitteln ob JComponent einen Listener besitzt AWT, Swing, JavaFX & SWT 2
T Eigene JComponent AWT, Swing, JavaFX & SWT 4
G JComponent nachträglich in JPanel einfügen AWT, Swing, JavaFX & SWT 5
M Ganzen Frame mit JComponent ausfüllen AWT, Swing, JavaFX & SWT 9
M JMenu teilweise unter einer JComponent AWT, Swing, JavaFX & SWT 4
I Swing JComponent als BufferedImage speichern AWT, Swing, JavaFX & SWT 18
1 Eigene JComponent mit MouseListener versehen AWT, Swing, JavaFX & SWT 10
T JComponent nur in Swing verwendbar? AWT, Swing, JavaFX & SWT 6
M Mehrere Icons in einer JComponent AWT, Swing, JavaFX & SWT 5
Dragonfire Image von JComponent AWT, Swing, JavaFX & SWT 2
T x und y herrausfinden eines JComponent auf JFrame AWT, Swing, JavaFX & SWT 14
J absolute Position einer JComponent ermitteln AWT, Swing, JavaFX & SWT 4
B "weiches" Bewegen von einem JComponent AWT, Swing, JavaFX & SWT 18
ARadauer JPanel vs JComponent AWT, Swing, JavaFX & SWT 2
I JDialog aus JComponent erstellen AWT, Swing, JavaFX & SWT 2
S JComponent u. JPanel ausdrucken AWT, Swing, JavaFX & SWT 3
J SWT JComponent Problem AWT, Swing, JavaFX & SWT 4
T JComponent überzeichnen? AWT, Swing, JavaFX & SWT 2
G JComponent in JTable AWT, Swing, JavaFX & SWT 8
M JComponent wird in JFrame nicht angezeigt AWT, Swing, JavaFX & SWT 4
D bei Thread in JComponent malen NullPointerException AWT, Swing, JavaFX & SWT 3
S Alle EventListener einer JComponent abfragen? AWT, Swing, JavaFX & SWT 3
S JComponent in JPanel darstellen AWT, Swing, JavaFX & SWT 2
N JComponent#getClientProperty(key) welche Schlüssel gibt es? AWT, Swing, JavaFX & SWT 3
E Drucken von JComponent. AWT, Swing, JavaFX & SWT 4
S JComponent ersetzen AWT, Swing, JavaFX & SWT 13
R Resize Problem bei JComponent AWT, Swing, JavaFX & SWT 2
M JButton in JComponent abfragen AWT, Swing, JavaFX & SWT 6
S Mausbehandlungen für JComponent AWT, Swing, JavaFX & SWT 7
M Verschiebbare JComponent AWT, Swing, JavaFX & SWT 5
C zeichnen auf jComponent AWT, Swing, JavaFX & SWT 3
S in einem JComponent zu zeichnen AWT, Swing, JavaFX & SWT 4
G Grafik auf JComponent ohne Überschreiben von Paint-Methoden AWT, Swing, JavaFX & SWT 4
R JComponent malt seine Kinder nicht AWT, Swing, JavaFX & SWT 8
G JComponent Hintergrund AWT, Swing, JavaFX & SWT 3
M JMenu auf JComponent? AWT, Swing, JavaFX & SWT 10
G Graphics (g) und JComponent prob. AWT, Swing, JavaFX & SWT 2
G Klasse XYComponent extends JComponent AWT, Swing, JavaFX & SWT 3
CptK Point2D.Double Kurven - Beschriftung und richtiges Anklicken AWT, Swing, JavaFX & SWT 7
Z Swing Button anklicken und bewegen AWT, Swing, JavaFX & SWT 2
M Combobox bild anklicken AWT, Swing, JavaFX & SWT 2
G Menübar anklicken und Inhalt entsprechend wechseln AWT, Swing, JavaFX & SWT 4
A JButton soll durch anklicken die Farbe wechseln AWT, Swing, JavaFX & SWT 8
J gezeichnetes Objekt anklicken AWT, Swing, JavaFX & SWT 10
J JTable Zeile anklicken und neues Frame öffnen AWT, Swing, JavaFX & SWT 4
F ToolTip mit Link zum anklicken AWT, Swing, JavaFX & SWT 2
V Swing JButton ohne Border bei Anklicken AWT, Swing, JavaFX & SWT 3
GianaSisters jList nur einmal ein Element anklicken AWT, Swing, JavaFX & SWT 3
M Kreise anklicken (Farbänderung) AWT, Swing, JavaFX & SWT 2
F Swing Button reagiert erst beim mehrmaligen Anklicken AWT, Swing, JavaFX & SWT 6
C JList: Eintrag anklicken & JTextfield mit Text aus MySQL füllen? (Screenshot dabei) AWT, Swing, JavaFX & SWT 8
Bierhumpen Linien anklicken? AWT, Swing, JavaFX & SWT 9
G JOptionPane mit link zum anklicken AWT, Swing, JavaFX & SWT 4
F Häkchen erscheint nicht bei anklicken von Checkbox in JTable AWT, Swing, JavaFX & SWT 4
A Aktion beim anklicken einer Zeile in einer Tabelle ausführen AWT, Swing, JavaFX & SWT 4
T Labels gleichzeitig bewegen und anklicken AWT, Swing, JavaFX & SWT 3
M ToolTipText für JTable mit MouseListener ohne anklicken? AWT, Swing, JavaFX & SWT 7
M Linien zeichnen und anklicken AWT, Swing, JavaFX & SWT 2
J Anklicken der Symbolleiste und Neuzeichnen des Buttons AWT, Swing, JavaFX & SWT 6
G JSpinner bringt bei anklicken eine CastException AWT, Swing, JavaFX & SWT 5
G JTable! Beim anklicken einer Zeile soll sich Farbe ändern! AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben