GridLayout не работает в JPanel

1

Я пытаюсь добавить JButton в свой JPanel несколько раз, используя GridLayout. По какой-то причине, хотя каждый раз, когда я запускаю программу, она показывает только 1 кнопку.

Здесь код:

    jPLeft = new JPanel();
    jPLeft.setPreferredSize(new Dimension(600,500));
    jPLeft.setBackground(Color.WHITE);
    jPLeft.setLayout(new GridLayout(2,2));
    jPLeft.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
    window.add(jPLeft, BorderLayout.CENTER);

    imageSand = new ImageIcon("..\\CSY1020\\src\\resources\\sand.jpg");
    jBSand = new JButton(imageSand);
    jPLeft.add(jBSand);
    jPLeft.add(jBSand);
    jPLeft.add(jBSand);
    jPLeft.add(jBSand);
Теги:
swing
jpanel
layout-manager
grid-layout

1 ответ

4
Лучший ответ

Component может быть добавлен только один раз и может иметь только один родительский Container

imageSand = new ImageIcon("..\\CSY1020\\src\\resources\\sand.jpg");
for (int i = 0; i < 4; i++) {
    JButton jBSand = new JButton(imageSand);
    jPLeft.add(jBSand);
    jPLeft.add(jBSand);
    jPLeft.add(jBSand);
    jPLeft.add(jBSand);
}
  • 0
    Я вижу, я не знал, что спасибо!
  • 0
    На самом деле, компонент может быть добавлен несколько раз, но будет иметь только одного родителя, удаляя его из предыдущего контейнера - я знаю, что я не знаю;)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню