• Hallo!

    es ist bestimmt eine simple Sache, aber irgeendwie bekomme ich es nicht hin:

    Ich habe einen JDialog und möchte, dass der enthaltenen JPanel neu gezeichnet wird.
    Ich habe es versucht mit

    pane.revalidate();
    pane.validate();
    pane.updateGraphics(Graphics g);
    pane.repaint();

    Aber nix wird refreshed, was mache ich denn falsch?:(:mad:

    Danke schonmal im Voraus..

  • So ein ähnliches Problem hatte ich schon einmal, ist das Panel in einer anderen Komponente drinnen? Bzw. verwendest du einen LayoutManager? Und warum brauchst du ein Repaint?

    mfg.

    There's no better place than 127.0.0.1!

  • Ich benutze JGoodies und FormLayout.
    Repaint.. Naja ich dachte damit könnte ich das Display neu zeichnen.

    Ich habe einen Browse-Butten der mit einem File-Open Dialog verknüpft ist. Wenn ein File ausgewählt wurde, wird der Name des Files in einem Textfeld angezeigt. Das Funktioniert auch soweit, nur dass das Textfeld sich nicht refreshed und man es deswegen nicht sehen kann.

  • Naja, es ist eher eine Drop-Down Box, in der der File-Name erscheint. Hatte Textfeld geschrieben weil es von der refresh-funktion her ja egal ist.

    Also:

    browseCombobox = updateBrowseComboBox(files);

    private JComboBox updateBrowseComboBox(String[] content)
    {
    if(content != null)
    return new JComboBox(content);
    else
    return null;
    }

  • Mhm, ist klar warum das nicht geht. Eine JComboBox ist ein Objekt also gilt Referenzsemantik und nicht Wertsemantik. Das heißt, du änderst nicht deine ComboBox sondern du änderst den Zeiger auf selbige so um, dass er auf ein neues, anderes Objekt zeigt. Das Objekt in der Pane bleibt unverändert.
    Du musst deine ursprüngliche ComboBox verändern, mit removeItem() oder insertItem() oder wie immer das auch heißt.

    There's no better place than 127.0.0.1!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!