Bei mousover Hintergrund von JTextArea ändern

deni74

Mitglied
Hallo,

kann mir jemand sagen was ich hier falsch mache? Ich möchte, das beim mouseover das TextArea seine Hintergrundfarbe ändert.

Code:
beschreibung.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                m_entered(evt);
            }
});

beschreibung.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseExited(java.awt.event.MouseEvent evt) {
                m_exited(evt);
            }
});

protected void m_entered(MouseEvent evt) {
		System.out.println("Hintergund grau");
		this.setBackground(Color.LIGHT_GRAY);		
	}
	
protected void m_exited(MouseEvent evt) {
		System.out.println("Hintergund weiß");
		this.setBackground(Color.RED);		
}

Komischer weise gibt er die Texte auf der Konsole aus, aber setBackround() bewirkt bei den TextArea leider nichts. Was mache ich falsch?
 
Hallo,

wo befinden sich denn diese Methoden?

Code:
protected void m_entered(MouseEvent evt) {
		System.out.println("Hintergund grau");
		this.setBackground(Color.LIGHT_GRAY);		
	}
	
protected void m_exited(MouseEvent evt) {
		System.out.println("Hintergund weiß");
		this.setBackground(Color.RED);		
}

MFG

zEriX
 
Dann versuch es mal so

Code:
protected void m_entered(MouseEvent evt) {
		System.out.println("Hintergund grau");
		beschreibung.setBackground(Color.LIGHT_GRAY);		
	}
	
protected void m_exited(MouseEvent evt) {
		System.out.println("Hintergund weiß");
		beschreibung.setBackground(Color.RED);		
}

Vorrausgesetzt, dass beschreibung dein Textfeld ist.

MFG

zEriX
 
Hey cool,

so gehts. von this scheint er sich nix anzunehmen. dachte ich kann diese Methode für zig beliebige TextArea übernehmen. deswegen hatte ich da this davor stehen.

danke
 
müsste ich denn jetzt für jedes Textfeld eine eigene Methode schreiben? ich habe 2 verscheidene Textfelder und dachte mir jenachdem über welchem textfeld sich die Maus gerade befindet, erkennt er das und setzt dann den Hintergrund für dieses Textfeld. Scheint wohl so nicht zu funktionieren oder?
 
Moin!
evt.getSource() liefert dir die Quelle des Ereignisses. Und auf diese kannst du dann setBackground aufrufen...
Code:
protected void m_entered(MouseEvent evt) {
        System.out.println("Hintergund grau");
        ((JTextArea)(evt.getSource()).setBackground(Color.LIGHT_GRAY);         
    }

*grüssle*
MeinerEiner
 
hmmmm,
so ganz klappt das nicht. Hab jetzt das da stehen:
Code:
protected void b_exited(MouseEvent evt) {
		((JTextArea)(evt.getSource()).setBackground(Color.LIGHT_GRAY)); 	
	}

und bekomme dies Fehlermeldung:

multiple markers at this line
- Syntax error, insert "AssignmentOperator Expression" to complete Expression
- The left hand side of an assignment must be a variable
- Syntax error, insert ")" to complete Expression
 
Versuch es mal so
Code:
protected void b_exited(MouseEvent evt) {
		((JTextArea)(evt.getSource()).setBackground(Color.LIGHT_GRAY); 	
	}

Egal bei welchen Listenern, bekommst du mit evt.getSource() immer das Object auf dem das Event ausgelöst wurde.

MFG

zEriX
 
Zurück