M
me
Gast
Ich habe einen Klasse, extends JFrame. Diese enthält ein Objekt vom Typ JPanel, in welchem wieder weitere Objekte liegen. Diese sollen ständig an die aktuelle Größe des Frames angepasst sein. Soweit alles ok, nur das ich nen merkwürdigen Fehler habe...
Dazu erstmal ein Screen:
Links sieht man den Frame diekt nach dem Start der Anwendung. Alles wie gewünscht. In der Mitte is der selbe Frame, nur etwas breiter gezogen (einfach mit der Maus über den Rahmen). Dabei entsteht auch kein Fehler, direkt werden alle Objekte von der Größe passend angeglichen. Rechts aber der Frame wenn ich ihn kleiner (bzw schmaler, d.h. bzgl der x-Achse) ziehe.
Der Rahmen des im Frames enthaltenen JPanels wird angepasst, die darin enthaltenen Objekte aber nicht... Ziehe ich den Frame danach erneut kleiner, wird die Größe der Objekte angepasst, allerdings wieder ein Stückchen falsch... quasi selber fehler... Klicke ich nur auf den rahmen, ohne die größe zu verändern, wird alles perfekt angepasst...
Ebenso kann ich die methode paint() in den Dauerloop stellen, dann wird auch alles passend gesetzt... allerdings ist das natürlich keine wirkliche lösung und zieht nur unmengen ressourcen.
Ich verstehe nicht wirklich wieso das überhaupt nen Unterschied macht ob ich das fenster nen größter oder kleiner ziehe...
Der Fehler tritt im übrigen sowohl bzgl. der x und der y-Achse auf. Beide male aber ist beim größer ziehen des Frames alles passend, beim kleiner ziehen allerdings nicht.
Was tuhe ich damit es klappt ?
Hier sind noch ein kurzer Ausschnitt aus meinem Code:
[Der Frame hat ein null-Layout, darin liegt das JPanel mit GridLayout, main ist hier das JPanel, welches immer mit passender Größe und festem Abstand zum Rand im Frame liegen soll]
Dazu erstmal ein Screen:
Links sieht man den Frame diekt nach dem Start der Anwendung. Alles wie gewünscht. In der Mitte is der selbe Frame, nur etwas breiter gezogen (einfach mit der Maus über den Rahmen). Dabei entsteht auch kein Fehler, direkt werden alle Objekte von der Größe passend angeglichen. Rechts aber der Frame wenn ich ihn kleiner (bzw schmaler, d.h. bzgl der x-Achse) ziehe.
Der Rahmen des im Frames enthaltenen JPanels wird angepasst, die darin enthaltenen Objekte aber nicht... Ziehe ich den Frame danach erneut kleiner, wird die Größe der Objekte angepasst, allerdings wieder ein Stückchen falsch... quasi selber fehler... Klicke ich nur auf den rahmen, ohne die größe zu verändern, wird alles perfekt angepasst...
Ebenso kann ich die methode paint() in den Dauerloop stellen, dann wird auch alles passend gesetzt... allerdings ist das natürlich keine wirkliche lösung und zieht nur unmengen ressourcen.
Ich verstehe nicht wirklich wieso das überhaupt nen Unterschied macht ob ich das fenster nen größter oder kleiner ziehe...
Der Fehler tritt im übrigen sowohl bzgl. der x und der y-Achse auf. Beide male aber ist beim größer ziehen des Frames alles passend, beim kleiner ziehen allerdings nicht.
Was tuhe ich damit es klappt ?
Hier sind noch ein kurzer Ausschnitt aus meinem Code:
[Der Frame hat ein null-Layout, darin liegt das JPanel mit GridLayout, main ist hier das JPanel, welches immer mit passender Größe und festem Abstand zum Rand im Frame liegen soll]
Code:
public class Mastermind extends JFrame implements ActionListener
{
...
public void paint(Graphics g)
{
super.paint(g);
main.setSize(getSize().width-48,getSize().height-95);
paintComponents(g);
}
...
}