Добавление изображения в JPanel с помощью IDE NetBeans - PullRequest
1 голос
/ 02 апреля 2012

Я пытаюсь добавить изображение n на панель, используя Netbeans. Я перетащил панель из палитры в рамку и измерил ее в соответствии с желаемым размером изображения. Затем в конструкторе я добавил изображение на панель (я назвал его panelImage) следующим образом.

JLabel label = new JLabel(new ImageIcon("images\\BrokenFrameResized.jpg"));
    paneImage.add(label);

Однако изображение не отображается. Каков наилучший способ отображения изображения в виде размера панели с помощью диспетчера компоновки Matisse (например, перетаскивание панели).

Лучше ли использовать paintComponent (Graphics g)?

Ответы [ 2 ]

6 голосов
/ 02 апреля 2012

Лучше ли использовать paintComponent (Graphics g) ?.

Это если вы хотите, чтобы изображение появлялось позади других компонентов, в противном случае отобразите его как JLabel.Проблема здесь, скорее всего, в том, что вы обращаетесь к ресурсу встроенного приложения, как если бы это был File.Доступ к встроенным ресурсам должен осуществляться через URL.

EG

URL urlToImage = this.getClass().getResource("/images/BrokenFrameResized.jpg");
ImageIcon icon = new ImageIcon(urlToImage);
...
2 голосов
/ 02 апреля 2012

Да. Вы обязательно должны использовать paintComponent. Если вы попробуете использовать JLabel, вам будет сложно установить другие компоненты на вашу панель, потому что компоненты не могут перекрываться.

...