Я хочу отобразить изображение в своем 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);
Кто-то может помочь мне?
Используя предоставленный вами код, у вас уже есть изображение в JLabel
под названием lblimage
. Теперь вы можете добавить ее к панели или любому другому объекту-контейнеру, например, так:
JPanel mainPanel = new JPanel(new BorderLayout());
mainPanel.add(lblimage);
// add more components here
frame.add(mainPanel);
frame.setVisible(true);
Вы можете обращаться с этой меткой (lblimage
) так же, как с любым обычным компонентом.
Вы можете попробовать сделать это вместо этого:
import javax.swing.ImageIcon;
...
JLabel image = new JLabel(new ImageIcon("imageName.png"));
...
frame.add(image);
Я считаю, что это намного проще сделать: D
РЕДАКТИРОВАТЬ: Прочитав вопрос в 4-й раз, я понял, что это именно то, что вы сделали в вопросе . Теперь мне сложно понять, что именно вы просите.
К другим полезным ответам я бы добавил два примечания:
1) Не проглатывайте исключения; записать в журнал или хотя бы распечатать трассировку стека.
catch (IOException e) { e.printStackTrace(); }
2) Вместо записи frame.setSize (300, 400)
используйте pack ()
, что «заставляет это окно
иметь размер, чтобы соответствовать предпочтительный размер и расположение его подкомпонентов ". Таким образом, будут использованы исходные размеры изображения. Это также основа предложения @ camickr прочитать о менеджерах компоновки.
и я хочу добавлять все больше и больше элементов (кнопки и метки) в мой графический интерфейс. жестяная банка пожалуйста, помогите мне
Ваш вопрос не имеет ничего общего с ярлыками и изображениями. Вы должны понимать, как использовать менеджеры компоновки для организации компонентов, которые вы добавляете во фрейм.
Итак, начните с чтения учебника Swing по Layout Managers . Есть множество примеров, которые вы можете скачать и поиграть. Также вы можете размещать разные менеджеры по расположению на разных панелях.
Ваш код уже делает то, что вам нужно (чтобы отображать его не в JFrame - это JLabel -)
Для того, что вы скажите в своих комментариях, чтобы попытаться перетащить и добавить больше компонентов, я думаю, вам нужно использовать GUI BUilder для достижения того, что вы хотите (который не только показывает изображение, но и добавляет другие компоненты)
Я бы порекомендовал вы используете IntelliJ IDEA GUI Builder
. Чтобы получить полный обзор того, как работает Swing и что вы можете с ним сделать, вы также можете взглянуть на: Учебник качелей