Я пытаюсь добавить 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