Как отобразить изображение в JAVA-приложении

Я хочу отобразить изображение в своем JAVA-приложении. Я нашел, что код загрузил изображение с веб-сервера и показал его в jframe.

Я хочу использовать маркировку для показа изображения или чего-то еще. Это не должен быть JFrame.

Вот мой код:

Image image = null;
try {
    URL url = new URL(
        "http://www.personal.psu.edu/acr117/blogs/audrey/images/image-2.jpg");
    image = ImageIO.read(url);
} catch (IOException e) {
}

// Use a label to display the image
JFrame frame = new JFrame();

JLabel lblimage = new JLabel(new ImageIcon(image));
frame.getContentPane().add(lblimage, BorderLayout.CENTER);
frame.setSize(300, 400);
frame.setVisible(true);

Кто-то может помочь мне?

10
задан Solomon Slow 27 September 2014 в 01:21
поделиться

5 ответов

Используя предоставленный вами код, у вас уже есть изображение в JLabel под названием lblimage. Теперь вы можете добавить ее к панели или любому другому объекту-контейнеру, например, так:

JPanel mainPanel = new JPanel(new BorderLayout());
mainPanel.add(lblimage);
// add more components here
frame.add(mainPanel);
frame.setVisible(true);

Вы можете обращаться с этой меткой (lblimage) так же, как с любым обычным компонентом.

4
ответ дан 4 December 2019 в 00:23
поделиться

Вы можете попробовать сделать это вместо этого:

import javax.swing.ImageIcon;
...
JLabel image = new JLabel(new ImageIcon("imageName.png"));
...
frame.add(image);

Я считаю, что это намного проще сделать: D

РЕДАКТИРОВАТЬ: Прочитав вопрос в 4-й раз, я понял, что это именно то, что вы сделали в вопросе . Теперь мне сложно понять, что именно вы просите.

3
ответ дан 4 December 2019 в 00:23
поделиться

К другим полезным ответам я бы добавил два примечания:

1) Не проглатывайте исключения; записать в журнал или хотя бы распечатать трассировку стека.

catch (IOException e) { e.printStackTrace(); }

2) Вместо записи frame.setSize (300, 400) используйте pack () , что «заставляет это окно иметь размер, чтобы соответствовать предпочтительный размер и расположение его подкомпонентов ". Таким образом, будут использованы исходные размеры изображения. Это также основа предложения @ camickr прочитать о менеджерах компоновки.

2
ответ дан 4 December 2019 в 00:23
поделиться

и я хочу добавлять все больше и больше элементов (кнопки и метки) в мой графический интерфейс. жестяная банка пожалуйста, помогите мне

Ваш вопрос не имеет ничего общего с ярлыками и изображениями. Вы должны понимать, как использовать менеджеры компоновки для организации компонентов, которые вы добавляете во фрейм.

Итак, начните с чтения учебника Swing по Layout Managers . Есть множество примеров, которые вы можете скачать и поиграть. Также вы можете размещать разные менеджеры по расположению на разных панелях.

1
ответ дан 4 December 2019 в 00:23
поделиться

Ваш код уже делает то, что вам нужно (чтобы отображать его не в JFrame - это JLabel -)

Для того, что вы скажите в своих комментариях, чтобы попытаться перетащить и добавить больше компонентов, я думаю, вам нужно использовать GUI BUilder для достижения того, что вы хотите (который не только показывает изображение, но и добавляет другие компоненты)

Я бы порекомендовал вы используете IntelliJ IDEA GUI Builder

. Чтобы получить полный обзор того, как работает Swing и что вы можете с ним сделать, вы также можете взглянуть на: Учебник качелей

1
ответ дан 4 December 2019 в 00:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: