在JLabel中将图像添加到JPanel

时间:2015-06-11 15:10:05

标签: java image swing 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);

    }
}

但是,如果我运行它,图像就不会出现。

为什么?我是Java的新手,所以我很容易犯这样的错误。

我已经尝试了几种选择,但没有一种可以帮助我。

1 个答案:

答案 0 :(得分:2)

JLabel label3 = new JLabel(new ImageIcon("/images/cirkel.png"));

请勿使用/images/...。前导“/”告诉java查看驱动器的根目录。

我猜你的“images”目录在你的源目录中,所以你应该使用:

JLabel label3 = new JLabel(new ImageIcon("images/cirkel.png"));
  

我是Java的新手,所以我很容易犯这样的错误。

阅读How to Use Icons上的Swing教程,了解如何加载图片和工作示例的更好示例,以便为您的程序提供更好的结构。

我们的想法是从一个有效的程序开始,并从该程序的结构中学习。然后进行小的改动。如果它停止工作,那么你就知道你改变了什么以及导致问题的原因。