Menüeinträge und Buttons

Hallo!

Ich hab da mal folgende Frage:

Ich habe eine Java-Applikation implementiert die mit einer Menüleiste bestückt ist und darunter erscheint eine Symbolleiste und darunter kommt das MainFrame mit dem eigentlichen Programminhalt.

  1. Ein Menüpunkt in der Menüleiste heißt „Sichten“. Klickt man drauf, öffnet sich ein Pulldown-Menü mit mehreren MenuItems darin. Jetzt möchte ich, dass wenn ich auf einen dieser MenuItems in diesem Pulldown-Menü drücke, ein Häkchen vor dieses MenüItem gesetzt wird. Wie geht das?

  2. Meine Symbolleiste ist so implementiert, dass diese aus JButtons besteht, denen ich jeweils mit
    einJButton.setIcon(loadImageIcon(„ClassView24“));
    ein gif-Bild zugeordnet habe. Wenn ich jetzt auf ein solches Symbol einmal klicke, dann soll nun dieses Symbol gedrückt dargestellt bleiben, bis ich wieder darauf klicke. Wie mach ich das denn? Ich hab in der JavaDoc was gelesen von der JButton-Methode setPressedIcon (Icon pressedicon). Kann ich damit viellicht was machen? Wenn ja, wie?

Gruß,
Victor

Hi Victor

folgende Anhaltspunkte zu deinen Fragen:

  1. Ein Menüpunkt in der Menüleiste heißt „Sichten“. Klickt man
    drauf, öffnet sich ein Pulldown-Menü mit mehreren MenuItems
    darin. Jetzt möchte ich, dass wenn ich auf einen dieser
    MenuItems in diesem Pulldown-Menü drücke, ein Häkchen vor
    dieses MenüItem gesetzt wird. Wie geht das?

siehe javax.swing.JCheckBoxMenuItem

  1. Meine Symbolleiste ist so implementiert, dass diese aus
    JButtons besteht, denen ich jeweils mit
    einJButton.setIcon(loadImageIcon(„ClassView24“));
    ein gif-Bild zugeordnet habe. Wenn ich jetzt auf ein solches
    Symbol einmal klicke, dann soll nun dieses Symbol gedrückt
    dargestellt bleiben, bis ich wieder darauf klicke. Wie mach
    ich das denn? Ich hab in der JavaDoc was gelesen von der
    JButton-Methode setPressedIcon (Icon pressedicon). Kann ich
    damit viellicht was machen? Wenn ja, wie?

Hab ich noch nie probiert (ich argumentiere jetzt aus dem Stegreif). IMHO ist das PressedIcon jenes, welches beim Drücken (also vor dem Loslassen) angezeigt wird. Nach dem Drücken ist wieder das normale Icon da.
Im Endeffekt möchtest du also einen Button, der sich wie eine Checkbox verhält:

...
 JCheckBox cb = new JCheckBox();

 ImageIcon image1 = new ImageIcon(BILDLOCATION1);
 ImageIcon image2 = new ImageIcon(BILDLOCATION2);
 cb.setIcon(image1);
 cb.setSelectedIcon(image2);

Das funktioniert ganz gut bei mir…

Ciao, Bill