• hallo!

    habe ein problem mit dem repaint!
    ich möchte vom jslider den wert auslesen und dann dementsprechend den text ändern, leider erfolglos....

  • hab ich paradeisa auf den augen, oder ueberseh ich da die verwendung von quicktime?

    Nein, das siehst Du richtig. Dazu werden die Interfaces ActionListener, WindowListener und ChangeListener implementiert, jedoch fehlen 8 Methoden, die in diesen Interfaces definiert sind. Konnte das Beispiel deshalb leider nicht testen.

    Uebrigens: Viel einfacher geht das mit JavaFX:

  • hm, eigentlich fehlt da keine methode, ich hab auch nur die eine klasse :) ....
    das es andes geht schon klar :) aber ich will das mit java2d machen also mit drawString!
    kannst du mir da dabei helfen??

  • hm, eigentlich fehlt da keine methode, ich hab auch nur die eine klasse :) ....

    Du implementierst in deiner Klasse die Interfaces ActionListener, WindowListener und ChangeListener.

    D.h. Du musst alle Methoden, die in diesen Interfaces beschrieben stehen, implementieren. Ansonsten kann Dein Code nicht kompilieren.

    Zitat

    kannst du mir da dabei helfen?


    Ja.

    Du erstellst derzeit von der Klasse DrawExample zwei verschiedene Instanzen: Eine fuegst Du zu Deinem JFrame hinzu:

    PHP
    frame.getContentPane().add(new DrawExample());

    die andere erwartet das Event vom slider:

    PHP
    ChangeListener aChangeListener = new DrawExample();
    slider.addChangeListener(aChangeListener);

    das bedeutet das die Instanz, die das ChangeEvent vom Slider empfaengt, gar nicht Teil Deines Fensters ist. Und die Instanz die tatsaechlich am Fenster haengt, bekommt das Event nicht.

    Also um Deinen code zum Laufen zu bringen:

    - Entferne die Interfaces ActionListener und WindowListener, denn die verwendest Du derzeit eh nicht.

    - Erstelle eine einzige Instanz von DrawExample, und uebergib diese Instanz dann einmal an das Frame (in ihrer Funktion als JCompontent) und einmal an den JSlider (in ihrer Funktion als ChangeListener).

    - seit java 6 musst du nicht mehr JFrame.getContentPage().add() verwenden. Du kannst/solltest stattdessen einfach die add() Methode benutzen.

  • danke für deine hilfe!
    es funktioniert jetzt!

    nur hab ich ein problem, dass der ursprungtext bleibt und der neue txt drübergeschrieben wird, bzw an die neue position gestellt wird! der text mit der alten position bleibt aber!

    wie muss ich das ändern, damit das nur upgedatet wird?

    danke & mfg

  • das mit refill geht auch nicht, aber wenn ich das fenster dann verschiebe oder größer mache nach dem verschieben des sliders, dann ist der text an der gewünschten position!
    komisch, warum ist das so?

  • weil sich dann auch die darunterliegenden Components neu zeichnen müssen.

    Wenn du vor dem drawString ein fillRect machst, das so groß ist wie dein Component dann klappt das, garantiert.

    lg Clemens

    To avoid horrible confusion, please pronounce the G in the word GNU when it is the name of this project.

Jetzt mitmachen!

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