Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Repaint auf JPanel

  1. #1
    Registrierter Benutzer
    Registriert seit
    27.08.2002
    Beiträge
    337

    Repaint auf JPanel

    Vorsicht ich bin Anfänger

    Ich habe einen JPanel (Klasse DrawPanel) mit einer Zeichnung. Diese möchte ich neuzeichnen lassen. Das funktioniert mit dem Mouse-Event ganz gut.

    // Repaint
    // ************************************************
    public void run()
    {
    SwingUtilities.updateComponentTreeUI(this);
    //this.repaint(); //Alternative
    System.out.println ("run done" );
    }

    public void mousePressed(MouseEvent evt)
    { x = evt.getX();
    y = evt.getY();
    run();
    }

    //**********************************************

    Jetzt möchte ich das ganze von einem anderen Fenster (andere Klasse) aus aufrufen mit einem Actionlistener:


    DrawPanel neuzeichnen= new DrawPanel();
    neuzeichnen.run();

    Er schreibt mir dann brav "run done" aber führt das repaint() nicht aus.

  2. #2
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    Ich könnte mir vorstellen, dass das this probleme macht:

    Eventuelle Abhilfe:

    Code:
    private JPanel thisPanel=null;
    public void setThisPanel(JPanel toSet){
      thisPanel=toSet;
    }
    ...
    
    public void run()
    {
      SwingUtilities.updateComponentTreeUI(thisPanel);
      System.out.println ("run done" );
    }
    ...
    DrawPanel neuzeichnen= new DrawPanel();
    neuzeichnen.setThisPanel(neuzeichnen);
    neuzeichnen.run();
    Nützt das was?

    MfG Bischi

    PS: Mit Threads immer aufpassen!
    PS2: Wieso benutzt du überhaupt run?! Und nicht eine beliebige andere Funktion?

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  3. #3
    Registrierter Benutzer
    Registriert seit
    27.08.2002
    Beiträge
    337
    Danke für die schnelle Antwort.
    Funktioniert leider nicht.
    Ich sollte also mal Threads lesen.
    Soweit bin ich noch nicht. Danke für den Tipp.

    Ich möchte einen Fensteraufbau wie in Word.
    Oben ein Menü und eine Toolbar und unten einen Panel mit Scrollbalken.

    Die Menüs laufen ganz gut. Ich mache da separate Fenster auf, um Daten in die Datenbank zu schreiben. Das klappt.
    Dann hole dich die Daten aus der Datenbank wieder ab und zeichne damit meine Rechtecke. Das geht auch noch.

    Aber mit der Fenstertechnik klappt es überhaupt nicht.
    Ich habe auf dem Panel keine Scrollbalken hinbekommen.
    SetAutoscroll ging daneben. So habe ich auf den Frame eine Textarea gebaut und in diese den Panel gelegt.
    Jetzt hätte ich gerne, daß mit einem Klick auf einen Toolbar-item sich die Grafik neu aufbaut und sich damit z.B. ein Zoom herstellen läßt.

    Die Dokumentation von Sun ist mir noch keine große Hilfe.
    Da ist mein Wissen noch nicht groß genug.
    Momentan tappe ich ziemlich blind herum.

  4. #4
    Registrierter Benutzer Avatar von Detrius
    Registriert seit
    09.03.2004
    Ort
    Altena
    Beiträge
    64
    Zitat Zitat von Jana
    Aber mit der Fenstertechnik klappt es überhaupt nicht.
    Ich habe auf dem Panel keine Scrollbalken hinbekommen.
    SetAutoscroll ging daneben. So habe ich auf den Frame eine Textarea gebaut und in diese den Panel gelegt.
    Du suchst JScrollPane.
    http://java.sun.com/j2se/1.5.0/docs/...crollPane.html

  5. #5
    Registrierter Benutzer
    Registriert seit
    27.08.2002
    Beiträge
    337
    Leider nicht, das habe ich verwendet.
    JScrollPane funktioniert auf dem JPanel nicht. Ist hierfür nicht definiert.
    Deswegen habe ich ja die JTextArea (ist hier definiert) eingebaut.
    Das ist aber nichts.

  6. #6
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    Zitat Zitat von Jana
    Danke für die schnelle Antwort.
    Funktioniert leider nicht.
    Ich sollte also mal Threads lesen.
    Soweit bin ich noch nicht. Danke für den Tipp.
    Threads geben spätestens dann ein riesiges Chaos, wenn du irgendwelche gemeinsamen Variablen,... nutzt. (Zauberwort lautet hier synchronized - es lohnt sich aber auf jeden Fall, mal ein wenig Thread-Theorie zu machen...)
    Ich möchte einen Fensteraufbau wie in Word.
    Oben ein Menü und eine Toolbar und unten einen Panel mit Scrollbalken.
    Vielleicht hilft dir sogar JInternalFrame noch weiter...
    Die Menüs laufen ganz gut. Ich mache da separate Fenster auf, um Daten in die Datenbank zu schreiben. Das klappt.
    Dann hole dich die Daten aus der Datenbank wieder ab und zeichne damit meine Rechtecke. Das geht auch noch.
    ok - ich persönlich würde das ganze zwar alles in einem Fenster mittels einer JTabbedPane realisieren - ist aber wohl geschmackssache.
    Aber mit der Fenstertechnik klappt es überhaupt nicht.
    Ich habe auf dem Panel keine Scrollbalken hinbekommen.
    SetAutoscroll ging daneben.
    Layout? JScrollPane sollte aber eigentlich schon gehen (afair).
    So habe ich auf den Frame eine Textarea gebaut und in diese den Panel gelegt.
    Das ist sicherlich eine sehr schlechte Idee - da so nicht gedacht...
    Jetzt hätte ich gerne, daß mit einem Klick auf einen Toolbar-item sich die Grafik neu aufbaut und sich damit z.B. ein Zoom herstellen läßt.
    Grafik? Ich hab da immer Canvas verwendet... Ev hilft dir mein Tut dazu weiter: http://homepage.sunrise.ch/mysunrise...l_walfisch.pdf

    Die Dokumentation von Sun ist mir noch keine große Hilfe.
    Da ist mein Wissen noch nicht groß genug.
    Momentan tappe ich ziemlich blind herum.
    Auf meiner HP hats jede Menge bewährter Java-Links zu frei verfügbaren Onlinebüchern - einfach mal vorbeischauen, hat viele Codebeispiele.

    MfG Bischi

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  7. #7
    Registrierter Benutzer
    Registriert seit
    27.08.2002
    Beiträge
    337
    Also fang ich mal an zu lesen. Danke!
    Die Datenbank bekommt erst später ihre Berechtigung.
    Irgendwie muß ich den Mouselistener auf dem JPanel noch hinbekommen
    und damit die Scrollbalken.

    Danke mal soweit!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •