# JComboBox und MouseListener



## skywest (14. Okt 2005)

Hallo Leute,
wenn die Mouse sich über einer JComboBox befindet, so möchte ich in einer JTextArea einen Text ausgeben. Leider funktioniert mein Coding

```
...
ComboBox = new JComboBox();
ComboBox.addMouseListener(this);
...
public void mouseEntered(MouseEvent arg0) {
if (arg0.getSource() == ComboBox())
{
	getJTextArea().setText(mvBundle.getString("msg.063"));
}
...
```
Was mache ich falsch???
Ciao, skywest


----------



## André Uhres (14. Okt 2005)

ComboBox()-->ComboBox


----------



## skywest (14. Okt 2005)

Hallo,
das war leider nur ein Tippfehler. mit ComboBox statt ComboBox() funktioniert es trotzdem nicht.
Ciao, skywest


----------



## L-ectron-X (14. Okt 2005)

OK, um deine Frage zu lösen, müssen wir drei Unbekannte aufdecken:

```
getJTextArea().setText(mvBundle.getString("msg.063"));
```

Gibt _getJTextArea()_ wirklich die JTextArea-Referenz zurück mit der du arbeitest und nicht ein Konstrukt wie:

```
return new JTextArea(); //wäre eine ganz andere Instanz
```
?

Gibt _mvBundle.getString("msg.063")_ wirklich etwas zurück, nämlich einen String?

Ist das Argument _(msg.063)_ für die getString()-Methode in Ordnung?

Gibt es sonst irgendwelche Fehlermeldungen beim Kompilieren bzw. Ausführen?


----------



## skywest (15. Okt 2005)

Also mit

```
getJTextArea().setText(mvBundle.getString("msg.063"));
```
kann es aus meiner Sicht nicht zusammenhängen. Ich benutze diese Methode auch bei anderen Dialogelementen wie z.B. JTextField, JCheckbox und JTable und da funktioniert es einwandfrei. Mein Coding sieht wie folgt aus

```
public void mouseEntered(MouseEvent arg0) {
		if (arg0.getSource() == panel3.getCDComboBox()){
			panel3.getJTextArea().setText(mvBundle.getString("msg.063"));
		}
		if (arg0.getSource() == panel3.getOpenButton()){
			panel3.getJTextArea().setText(mvBundle.getString("msg.064"));
		}

		if (arg0.getSource() == panel3.getCloseButton()){
			panel3.getJTextArea().setText(mvBundle.getString("msg.065"));
		}
		if (arg0.getSource() == panel3.getReadButton()){
			panel3.getJTextArea().setText(mvBundle.getString("msg.066"));
		}
		if (arg0.getSource() == panel3.getCDArtistTextfield()){
			panel3.getJTextArea().setText(mvBundle.getString("msg.067"));
		}
		if (arg0.getSource() == panel3.getCDAlbumTextfield()){
			panel3.getJTextArea().setText(mvBundle.getString("msg.068"));
		}
		if (arg0.getSource() == panel3.getJTable()){
			panel3.getJTextArea().setText(mvBundle.getString("msg.069"));
		}
		
	}
```
Das Coding enthält keine Syntax-Fehler. Bei allen Dialogelementen wird in der JTextArea ein Text angezeigt, wenn sich die Maus über diesem Dialogelement befindet nur nicht bei der ComboBox. Die Methode für die ComboBox sieht wie folgt aus:

```
public JComboBox getCDComboBox() {
		if (CDComboBox == null) {
			CDComboBox = new JComboBox();
			CDComboBox.setPreferredSize(new java.awt.Dimension(32,19));
			CDComboBox.setFont(new java.awt.Font("Dialog", java.awt.Font.PLAIN, 12));
			for (int i=0; i<mvDriveVector.size(); i++){
				Drive lvDrive = (Drive)mvDriveVector.elementAt(i);
				CDComboBox.addItem(lvDrive.getDriveName());
			}
			CDComboBox.setActionCommand("Selected");
  		        CDComboBox.addMouseListener(this);
			CDComboBox.addActionListener(this);
			CDComboBox.setSelectedIndex(0);
			
		}
		return CDComboBox;
	}
```
Was ist hier falsch?
Ciao, skywest


----------



## skywest (15. Okt 2005)

Habe es inzwischen selbst gelöst. Des Rätsels Lösung ist, dass JComboBox aus zwei Komponenten besteht. Nämlich einem Button/Text und einer JList. Registriert man den MouseListener auf den Button, so funktioniert es einwandfrei.


----------

