tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von zerix
ERLEDIGT
JA
ANTWORTEN
12
ZUGRIFFE
450
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    grossli grossli ist offline Rookie
    Registriert seit
    Aug 2007
    Beiträge
    7
    Hab da ein Problem mit JPanels resp. JFrames, dies sieht folgendermassen aus:

    Ich habe eine JFrame welches eine JScrollPane beinhaltete, dieses beinhaltet wiederum ein JPanel in welchem viele kleine JPanels platziert sind, diese kleinen JPanels simulieren Displays, deshalb werde ich sie nun Displays nennen. Ich ermögliche es nun anhand eines Mouselisteners jedes einzelne Display zu verschieben.

    Soweit funktioniert das auch einwandfrei, mein Problem ist aber sobald man die Grösse des JFrames verändert springen die Displays alle in die Ursprungsposition zurück. Wie könnte ich das verhindern?

    die Displays, also die vielen kleinen JPanels füge ich mit dem GridbagLayoutManager ins grosse JPanel, oder anders gesagt das grosse JPanel hat ein GridbagLayoutManager gesetzt!

    Liegts am LayoutManager oder könnte man irgendwie das repaint des JFrames beim Vergrössern verhindern ?

    Hoffe das ich das Problem einigermassen veständlich geschildert habe und mir jemand helfen kann

    Danke...
     

  2. #2
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
    Wie setzt du das ganze denn um? Weist du den Komponenten dann auch im Layout die neuen Positionen richtig wieder zu?
     

  3. #3
    Avatar von zerix
    zerix zerix ist offline Hausmeister
    tutorials.de Moderator
    Registriert seit
    May 2005
    Beiträge
    4.335
    Hallo,

    es liegt am LayoutManager. Es wird auch nichts bringen, das repaint zu verhindern.
    Ich habe was ähnliches verwirklicht, wie du im Anhang siehst. Grob gesagt hab ich versucht die Datei-Ansicht im Windows-Explorer nach zu programmieren. bei mir habe ich das Null-Layout genommen und positioniere alles selbst.

    MFG

    zEriX
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken JPanels platzieren sich nach dem Vergrössern in der Ursprungsposition-bild.bmp  
     
    Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)

  4. #4
    grossli grossli ist offline Rookie
    Registriert seit
    Aug 2007
    Beiträge
    7
    Nein, ich verschiebe sie einfach mittels setLocation (siehe Code)

    müsste ich die auch im Layoutmanager wieder richtig Positionieren

    wenn ja, versuch ich das mal nach dem Mittag und gebe bescheid.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
            MouseListener l = new MouseListener(){
     
                public void mousePressed(MouseEvent e) {
                    System.out.println(e.getPoint().x - displayPanel.getLocation().x);
                    System.out.println(e.getPoint().y - displayPanel.getLocation().y);
                    tempX = e.getPoint().x - displayPanel.getLocation().x;
                    tempY = e.getPoint().y - displayPanel.getLocation().y;
                }
                public void mouseReleased(MouseEvent e) {
                    displayPanel.setLocation((e.getPoint().x - (int)tempX),(e.getPoint().y - (int)tempY));  
                    
                }
                
            };
     

  5. #5
    Avatar von zerix
    zerix zerix ist offline Hausmeister
    tutorials.de Moderator
    Registriert seit
    May 2005
    Beiträge
    4.335
    Wenn du einen LayoutManager nutzt, wird die setLocation ignoriert bei der Positionierung.
     
    Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)

  6. #6
    grossli grossli ist offline Rookie
    Registriert seit
    Aug 2007
    Beiträge
    7
    Hab's jetzt auch mit dem NullLayout erstellt und es klappt einwandfrei!

    Danke für die rasche Hilfe euch Beiden
     

  7. #7
    grossli grossli ist offline Rookie
    Registriert seit
    Aug 2007
    Beiträge
    7
    Ich habe da noch was übersehen jetzt werden die Scrollleisten des JScrollpane nicht mehr angezeigt, muss ich das noch was ändern das ich jetzt das Nulllayout im JPanel verwende?
     

  8. #8
    Avatar von zerix
    zerix zerix ist offline Hausmeister
    tutorials.de Moderator
    Registriert seit
    May 2005
    Beiträge
    4.335
    Das Problem ist, wenn du das NullLayout verwendest, dass die Componente ihre Größe nicht mehr ändert, wenn irgendwas aus dem Bereich rausgeht. Das musste ich auch selbst implementieren. Dazu hab ich den ComponentListener verwendet. Da laufe ich über alle Componenten die im Container drin liegen und passe dann die Größe selbst an.

    MFG

    zEriX
    grossli bedankt sich. 
    Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)

  9. #9
    grossli grossli ist offline Rookie
    Registriert seit
    Aug 2007
    Beiträge
    7
    ja habe das probem gleich selber bemerkt aber diese Lösung wäre mir so wahrscheinlich nicht in den Sinn gekommen.

    Danke und Sorry bin halt noch " jung im Geschäft"
    Geändert von grossli (07.08.07 um 14:11 Uhr)
     

  10. #10
    Avatar von zerix
    zerix zerix ist offline Hausmeister
    tutorials.de Moderator
    Registriert seit
    May 2005
    Beiträge
    4.335
    Es gibt sicherlich noch andere Lösungen, aber das war die, die mir als erstes eingefallen ist.

    MFG

    zEriX
     
    Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)

  11. #11
    grossli grossli ist offline Rookie
    Registriert seit
    Aug 2007
    Beiträge
    7
    Hei es ist wieder eine Frage aufgetaucht wie so wird mit setSize beim grossen JPanel die Grösse nicht verändert ?

    Code :
    1
    
    frontPanel.setSize(width, height);
     

  12. #12
    Avatar von zerix
    zerix zerix ist offline Hausmeister
    tutorials.de Moderator
    Registriert seit
    May 2005
    Beiträge
    4.335
    Wenn das JPanel sich in einem Container befindet, der auch ein Layout gesetzt hat, setzt das Layout die Größe immer neu.

    Hast du das JPanel in einer ScrollPane?

    MFG

    zEriX
     
    Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)

  13. #13
    grossli grossli ist offline Rookie
    Registriert seit
    Aug 2007
    Beiträge
    7
    Ja.
    Habs sonst im ersten Beitrag glaubich noch einigermassen verständlich geschildert, wie ich es aufgebaut habe Was muss ich den ändern?
    Geändert von grossli (08.08.07 um 11:34 Uhr)
     

Ähnliche Themen

  1. Ursprungsposition für Transition elastic bei der Fancybox ändern
    Von Jan-Frederik Stieler im Forum Javascript & Ajax
    Antworten: 0
    Letzter Beitrag: 02.09.10, 19:55
  2. Antworten: 2
    Letzter Beitrag: 04.09.09, 15:04
  3. Antworten: 5
    Letzter Beitrag: 18.03.08, 15:22
  4. Texturen nach VRML exportieren und platzieren
    Von schmief im Forum Autodesk Maya (ehemals Alias)
    Antworten: 0
    Letzter Beitrag: 08.06.07, 16:10
  5. dokument nach links vergrössern
    Von pascalplus im Forum Flash Plattform
    Antworten: 8
    Letzter Beitrag: 08.05.05, 16:20