Ich versuche ein JPanel
zu einem anderen JPanel
hinzuzufügen und es an einem bestimmten Ort auf der ersten JPanel
platzieren. Ich mache das mit setBounds(x, y, w, h)
. Jetzt weiß ich, dass ich das nicht tun sollte, aber ich brauche eine Möglichkeit, es zu bewegen (als Animation).JPanel setbounds
Das Problem, das ich habe, ist, dass das Y nicht funktioniert. Wenn ich getBounds()
mache, wird es auf den korrekten Wert eingestellt, aber es bewegt sich nicht auf dem Bildschirm. Ich habe die Layout
auf null
festgelegt.
Erste JPanel
:
public WarehousePanel()
{
super(null);
gantries = new Gantry[5];
for (int i = 0; i < gantries.length; i++)
{
gantries[i] = new Gantry(3);
add(gantries[i]);
System.out.println(gantries[i].getY());
gantries[i].setBounds(15 * (i + 1), 100, 10, 50);
System.out.println(gantries[i].getBounds());
}
}'
Zweite JPanel
:
public Gantry(int y)
{
this.y = y;
packageY = new ArrayList();
setBackground(Color.red);
setPreferredSize(new Dimension(10, 50));
}
Vielen Dank im Voraus.
'Portale [i] .setBounds (15 * (i + 1), 100, 10, 50);' Y ändert sich nicht. – Tin
Korrekt, Y auf dem Bildschirm scheint immer noch 5 zu sein. – javaNoobsForever
Ich meinte, ich sehe nicht, dass Sie Y-Koordinate bewegen. Wenn Sie Animationen sehen möchten, müssen Sie möglicherweise eine Verzögerung wie Thread.sleep (Millisekunden) hinzufügen. Wenn Sie keine Verzögerung hinzufügen, wird nur der letzte Wert angezeigt - innerhalb von Schleifen werden keine Werte angezeigt. Ihr Bildschirm hat nur jframe nach der Schleife gerendert. – Tin