Изображение на JPanel - PullRequest
       8

Изображение на JPanel

0 голосов
/ 23 января 2012

Я хочу показать 6 разных изображений, каждое на aJPanel.Я пытаюсь добавить изображения в JLabel, но это не работает.Вот мой код:

public DocumentPanel2() {

    initComponents();

    List<String> imagenes = new ArrayList<String>();
    imagenes.add("/imagenes/fondoPanel.jpg");
    imagenes.add("/imagenes/button.jpg");
    imagenes.add("/imagenes/primera.JPG");
    imagenes.add("/imagenes/segunda.JPG");
    imagenes.add("/imagenes/tercera.JPG");
    imagenes.add("/imagenes/cuarta.JPG");

    List<JPanel> paneles = new ArrayList<JPanel>();
    paneles.add(jPanel1);
    paneles.add(jPanel2);
    paneles.add(jPanel3);
    paneles.add(jPanel4);
    paneles.add(jPanel5);
    paneles.add(jPanel6);
    for(int i = 0; i < imagenes.size(); i++)
    {
        ImageIcon image = new ImageIcon(new ImageIcon(getClass().getResource(imagenes.get(i))).getImage());
        JLabel label = new JLabel();
        label.setIcon(image);
        paneles.get(i).add(label);
    }
  }
}

Этот код находится в графическом интерфейсе открытого класса DocumentPanel2 extends javax.swing.JPanel.Я ожидаю панель с 6 панелями внутри, на каждой из которых отображается изображение, но я просто получаю панель с 6 панелями, на которой ничего не отображается.

Спасибо за вашу помощь!

1 Ответ

2 голосов
/ 23 января 2012

Вы не добавляете JPanels, которые содержат JLabels, ни в один контейнер, отображаемый в графическом интерфейсе. Более того, даже не используйте промежуточные JPanels, а просто добавьте JLabels с самими изображениями в контейнер, который хранится в графическом интерфейсе. Вы должны быть уверены, что контейнер (обычно JPanel) использует менеджер компоновки, который хорошо разметит и отобразит JLabels, например GridLayout (3, 0). Если компоненты добавляются после отображения графического интерфейса, не забудьте вызвать revalidate() и repaint() на контейнере JPanel после добавления JLabels.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...