Hi,
ich stehe gerade vor einem - für mich nicht nachvollziehbaren - Problem. Und zwar habe ich eine Klasse, die von JFrame abgeleitet ist. In dieser Klasse generiere ich dynamisch - je nach Übergabeparameter im Konstruktor - mehrere JComboBoxen und befülle diese. Die Anzeige der Maske funktioniert auch soweit ohne Probleme, aber irgendwie reagieren die Boxen nicht auf meinen MouseListener.
ent bzw. ext wird nie ausgegeben. Ich dachte, dass evtl. dabei ein generelles Problem vorliegt, aber zu meiner Überraschung funktionierte dieses KSKB
ohne Probleme. Weiß jemand woran das liegen könnte?
Danke!
ich stehe gerade vor einem - für mich nicht nachvollziehbaren - Problem. Und zwar habe ich eine Klasse, die von JFrame abgeleitet ist. In dieser Klasse generiere ich dynamisch - je nach Übergabeparameter im Konstruktor - mehrere JComboBoxen und befülle diese. Die Anzeige der Maske funktioniert auch soweit ohne Probleme, aber irgendwie reagieren die Boxen nicht auf meinen MouseListener.
Code:
public class Navi extends JFrame {
private final static long serialVersionUID = 1L;
private Blase blase = null;
private JPanel pane = null;
private JPanel buttons = null;
private JLabel pic = null;
private JComboBox[] boxes = null;
private String[] texte = null;
public Navi(Image picture, HashMap<String, String[]> box, int buttX, int buttY) {
blase = new Blase("");
pane = new JPanel();
buttons = new JPanel();
pic = new JLabel(new ImageIcon(picture));
ArrayList<String> key = new ArrayList<String>(box.keySet());
String[] elements = null;
boxes = new JComboBox[key.size()];
pane.setLayout(new BorderLayout());
buttons.setLayout(new GridLayout(buttY, buttX, 3, 3));
for (int i = 0; i < key.size(); i++) {
elements = box.get(key.get(i));
boxes[i] = new JComboBox(elements);
boxes[i].setName(key.get(i));
boxes[i].addMouseListener(mou);
buttons.add(boxes[i]);
}
pane.add(blase);
pane.add(pic, BorderLayout.WEST);
pane.add(buttons, BorderLayout.SOUTH);
setContentPane(pane);
}
private MouseAdapter mou = new MouseAdapter() {
public void mouseEntered(MouseEvent mou) {
System.out.println("ent");
for (int i = 0; i < texte.length; i++) {
if (mou.getSource() == boxes[i]) {
blase.setText(texte[i]);
break;
}
}
}
public void mouseExited(MouseEvent mou) {
System.out.println("ext");
blase.setText(texte[texte.length - 1]);
}
};
public void setTexte(String[] texte) {
this.texte = texte;
blase.setText(texte[texte.length - 1]);
}
}
ent bzw. ext wird nie ausgegeben. Ich dachte, dass evtl. dabei ein generelles Problem vorliegt, aber zu meiner Überraschung funktionierte dieses KSKB
Code:
public class Blub {
public static void main(String[] args) {
JFrame frame = new JFrame();
JComboBox box = new JComboBox();
box.addItem("Blob");
box.addItem("Blub");
box.addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent mou) {
System.out.println("blob");
}
});
frame.add(box);
frame.setSize(200, 300);
frame.setVisible(true);
}
}
ohne Probleme. Weiß jemand woran das liegen könnte?
Danke!