Я новичок в Java, и я пытаюсь создать JFrame с JPanel внутри и изображение внутри JLabel. Затем, добавив JLabel в JPanel, он должен работать правильно? Тем не менее, это так, как это сделано на docs.oracle.com ...Добавление изображения в JPanel в JLabel
Это код:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Interface {
private JPanel panel;
private JPanel buttonPane;
private JLabel label;
private JLabel label2;
private JTextField textfield;
private JTextField textfield2;
private JTextField textfield3;
private JTextField textfield4;
private JTextField textfield5;
private JButton button;
private JButton button2;
private JButton button3;
private JButton button4;
private JButton button5;
private JButton button6;
public static void main(String[] args) {
new Interface();
}
public Interface() {
JFrame frame = new JFrame("Vormen");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 300);
frame.setLocationRelativeTo(null);
panel = new JPanel();
buttonPane = new JPanel();
button = new JButton("cirkel");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JLabel label3 = new JLabel(new ImageIcon("images/cirkel.png"));
panel.add(label3);
panel.revalidate();
panel.repaint();
buttonPane.add(button);
buttonPane.add(button2);
buttonPane.add(button3);
frame.add(buttonPane, BorderLayout.NORTH);
frame.add(panel);
frame.setVisible(true);
}
}
Мой первый думаю, что ваше приложение не может получить доступ изображения/cirkel.png файл. Используйте абсолютный путь, чтобы убедиться, что он найдет его или даже лучше найдет учебник о ресурсах и о том, как справиться с ними. Затем поместите этот файл в качестве ресурса в ваше приложение. – DejanLekic
Извините, не понимал, что вы добавляете компоненты изображения в ActionListener - ваши ошибочные отступы отбросили меня (пожалуйста, исправьте это). Для этого вам лучше добавить компоненты, а именно JLabel в основной графический интерфейс в начале, а затем просто установить свой значок в ActionListener. Если вы уже знаете размер изображения при запуске приложения, часто рекомендуется установить ImageIcon с пустым изображением правильного размера при запуске приложения. –
'найти учебник о ресурсах и о том, как с ними бороться.' - ответ уже был дан вчера: http://stackoverflow.com/questions/30784690/add-image-to-jpanel-within-jlabel/30784800#30784800. Это раздражает, когда ОП не читает предоставленную информацию. – camickr