我有这段代码:
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的新手,所以我很容易犯这样的错误。
我已经尝试了几种选择,但没有一种可以帮助我。
答案 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教程,了解如何加载图片和工作示例的更好示例,以便为您的程序提供更好的结构。
我们的想法是从一个有效的程序开始,并从该程序的结构中学习。然后进行小的改动。如果它停止工作,那么你就知道你改变了什么以及导致问题的原因。