我試圖將JPanel
添加到另一個JPanel
,並將其放置在第一個JPanel
的特定位置。我正在用setBounds(x, y, w, h)
來做這件事。現在我知道我不應該這樣做,但我需要一種方式來移動它(作爲動畫)。JPanel setbounds
我遇到的問題是Y不起作用。如果我做getBounds()
它被設置爲正確的值,但它不會在屏幕上移動。我的Layout
設置爲null
。
首先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());
}
}'
二JPanel
:提前
public Gantry(int y)
{
this.y = y;
packageY = new ArrayList();
setBackground(Color.red);
setPreferredSize(new Dimension(10, 50));
}
感謝。
'gantries [i] .setBounds(15 *(i + 1),100,10,50);'Y不變。 – Tin
正確,屏幕上的Y仍然是5. – javaNoobsForever
我的意思是我沒有看到你正在移動Y座標。另外如果你想看動畫,你可能需要添加像Thread.sleep(毫秒)這樣的延遲。如果你不添加延遲,你只會看到最後一個值 - 你不會看到在循環內改變值。循環後,屏幕只呈現jframe。 – Tin