Announcement

Collapse
No announcement yet.

Aus JMenuItem wird JCheckBoxMenuItemkBox

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Aus JMenuItem wird JCheckBoxMenuItemkBox

    Hi,
    habe einen komischen Fehler in ner GUI von mir.
    Ich entwickel sowohl unter XP als auch unter Windows 7.
    Vorher ging es bei beiden.
    Jetzt kommt bei Win 7 ein komischer "Fehler".
    Ich habe folgenden Code (Auszug):

    Code:
    final JPopupMenu  popmen = new JPopupMenu(); 
    ...
    JMenuItem background = new JMenuItem("Hintergrundfarbe ändern", new ImageIcon(MaxLabel.class.getResource("/images/small/Menu-16.png"))); 
    popmen.add(background); 
    this.addMouseListener( new MouseAdapter() { 
        public void mouseReleased( MouseEvent me ) {
    		if (me.isPopupTrigger())     
    			popmen.show( me.getComponent(), me.getX(), me.getY() );
    }});

    Jetzt könnte man ja meinen da sollte bei einem Rechtklick ein JMenuItem mit einem Icon rauskommen.
    Das passiert aber nichts.
    So siehts aus:


    Wenn ich in Eclipse ein neues Projekt mache und dort ein JMenuItem einfüge passt alles.

    Ich glaube das der Fehler erst dann auftrat als ich die neue Java Version (24) installiert hatte.
    Habe auch wieder alles Java deinstalliert. Brachte aber nichts.

    Ich habe auch auf einem ganz unabhängigen Rechner, der komplett neu installiert wurde und neustes JRE drauf ist das Programm ablaufen lassen >> Gleicher Fehler. Es liegt also nicht an meinem Rechner. Der andere Rechner hat ebenfalls Win 7 drauf.

    Alles sehr komisch. hat jemand ne Idee?
    Attached Files

  • #2
    Asu welchem Grunde willst du ein Popup manuell anzeigen lassen?

    Und was hat der Titel mit der Frage zu tun?

    Ein JCheckBoxMenuItemBox gibt es im Standard-Java nicht

    Was ist /Menu-16.png für ein Icon? Eines mit einem Kästchen, welches markiert ist?
    Zuletzt editiert von Christian Marquardt; 07.03.2011, 21:43.
    Christian

    Comment


    • #3
      Originally posted by Christian Marquardt View Post
      Asu welchem Grunde willst du ein Popup manuell anzeigen lassen?
      Und was hat der Titel mit der Frage zu tun?
      Ein JCheckBoxMenuItemBox gibt es im Standard-Java nicht
      Was ist /Menu-16.png für ein Icon? Eines mit einem Kästchen, welches markiert ist?
      Naja, was heißt manuell anzeigen lassen. Das PopUp öffnet sich beim Rechtsklick auf ein Panel.

      Ja, im Titel hab ich mich verschrieben. Soll natürlich JCheckBoxMenuItem sein.

      Menu-16 ist ein ganz normales .png Bild. Siehe Anhang.


      Übrigens:
      Hab festgestellt das der Fehler auf meinem Win 7 System nur beim Windows Look&Feel auftritt. Beim Standard-Java Look&Feel sieht es so aus wie es aussehen soll.
      Attached Files

      Comment


      • #4
        Alles was vom JComponent erbt, hat

        http://download.oracle.com/javase/6/....JPopupMenu%29

        Somit ist das manuelle setzen eines Mauslisteners sowie das öffnen nicht erforderlich

        Hab festgestellt das der Fehler auf meinem Win 7 System nur beim Windows Look&Feel auftritt. Beim Standard-Java Look&Feel sieht es so aus wie es aussehen soll.
        hmmm, das würde eigentlich bedeuten, dass es ein Fehler in der JVM ist....
        Christian

        Comment


        • #5
          Habe keinen Bugreport gefunden, der auf ein solches Verhalten hinweist...
          Christian

          Comment


          • #6
            Originally posted by Christian Marquardt View Post
            Alles was vom JComponent erbt, hat

            http://download.oracle.com/javase/6/....JPopupMenu%29

            Somit ist das manuelle setzen eines Mauslisteners sowie das öffnen nicht erforderlich

            hmmm, das würde eigentlich bedeuten, dass es ein Fehler in der JVM ist....
            Danke für den Tipp. Hab ich also n bisschen kompliziert gemacht.

            Nachtrag:
            Obwohl die MenuItems als Checkboxen dargestellt werden haben sie immer noch das Verhalten der MenuItems. Es wird also nur falsch dargestellt. Die funktionsweise bleibt so wie es soll.
            Echt ein komischer Fehler. Vor allem da es ja vorher im gleichen Projekt immer ging.

            Comment


            • #7
              Ich kanns mir nicht erklären, aber jetzt gehts wieder.
              Hab eigentlich nur ne Funktion zum ändern des Look&Feels zur Laufzeit eingebaut. Jetzt gehts.
              Vielleicht gehts auch jetzt weil ich die Methode setComponentPopupMenu() jetzt nutze.
              Kein Plan.
              Aber trotzdem danke für eure Hilfe.

              Comment

              Working...
              X