GandalfTheWhite Geschrieben 19. Juni 2002 Geschrieben 19. Juni 2002 Ich würde gerne ein Hintergrundbold in einem Frame benutzen, so weit gelingt mir das auch ohne Probleme, jedoch soll das Bild sich automatisch der Größe des Frames anpassen -> bei einem Resize also die Methode rapaint oder wie auch immer aufrufen! Leider habe ich k.A. wie ich das realisieren soll! Bin für jeden "brauchbaren" *g* vorschlag dankbar! Thx Gandalf
T. Schiffler Geschrieben 20. Juni 2002 Geschrieben 20. Juni 2002 Hi ich selbst weiss jetzt nicht 100%ig wie es geht aber ich würde mir erstmal die Window Listener anschaun. Da gibt es doch bestimmt was, dass der benachrichtigt wenn die Grösse verändert wurde. Gibt es keinen entsprechenden Listener, dann überschreibe einfach die entsprechende Klasse und rufe die methode repaint zusätzlich in der resize auf Thomas
GandalfTheWhite Geschrieben 20. Juni 2002 Autor Geschrieben 20. Juni 2002 Nein, im WindowListener gibt es so etwas nicht, das ist ja mein Problem! Es wird "kein" WindowEvent ausgelöst wenn sich dir größe des Fensters ändert! hab mir jetzt beholfen, in dem ich mir die größe des Frames nach dem ersten anzeigen merke, und in der Paint Methode dann Abfrage ob sich die Größe geändert hat, funktioniert aber irgendwie nicht ganz Fehlerfrei! Stefan
Jaraz Geschrieben 20. Juni 2002 Geschrieben 20. Juni 2002 Original geschrieben von GandalfTheWhite hab mir jetzt beholfen, in dem ich mir die größe des Frames nach dem ersten anzeigen merke, und in der Paint Methode dann Abfrage ob sich die Größe geändert hat, funktioniert aber irgendwie nicht ganz Fehlerfrei! Hallo Versuche das mal in der Funktion validate deines Containers auszuführen. Vielleicht klappt das besser. Gruß Jaraz
bigredeyes Geschrieben 21. Juni 2002 Geschrieben 21. Juni 2002 hallo! hatte das proble auch schon mal. musste ien shape passend für ein panel machen. habe mir dann eine funktion gebaut, die mir das verhältnis von der kleineren seite von meinem panel zu der kleineren seite von meinem shape zurückgibt. dann das ganze noch durch ein AffineTransform, und dann is gut! class ....... extendx JPanel{ public void paint(graphics g){ ....... AffineTransform at = new AffineTransform(); double tt= trans(myShape); at.scale(tt,tt); graphics.transform(at); graphics.draw(myShape); ....... } private double trans(Shape s){ if(this.getHeight() < this.getWidth()){ if(s.getBounds().height > s.getBounds().width){ return (this.getHeight() / s.getBounds().height); } else{ return (this.getHeight() / s.getBounds().width); } } else{ if(s.getBounds().height > s.getBounds().width){ return (this.getWidth() / s.getBounds().height); } else{ return (this.getWidth() / s.getBounds().width); } } } hoffe geholfen zu haben und viel spass in der hitze! bigredeyes
bigredeyes Geschrieben 21. Juni 2002 Geschrieben 21. Juni 2002 besser: private double trans(Shape s){ double erg, vh, vw; if((vh=(double)getHeight()/myShape.getBounds2D().getHeight())<(vw=(double)getWidth()/myShape.getBounds2D().getWidth())){ return vh; } return vw; } bigred
GandalfTheWhite Geschrieben 24. Juni 2002 Autor Geschrieben 24. Juni 2002 @all thx werde das mit dem Shape gleich mal probieren, habe zwar noch nie mit Shapes gearbeitet, aber ich habe ja eine schönes Bsp. bekommen thx. Gandalf
GandalfTheWhite Geschrieben 24. Juni 2002 Autor Geschrieben 24. Juni 2002 Ich wäre dir dankbar wenn du mal einen vollständigen SourceCode posten würdest,... oder mir vielleicht sagst welche imports ich machen muss! Bei mir kennt er "AffineTransform" und graphics nicht! Thx Gandalf
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden