eclipse运行swing和生成的jar运行效果不同,jar运行时背景不能显示

我swing了一个登陆界面,但是生成jar文件运行后,背景不能显示(功能正常)。

public class Login extends JFrame {

    JPanel contentPane;
    JPasswordField passwordField;

    public static void main(String[] args) {
                Login frame = new Login();
    }

    public  Login() {
        setResizable(false);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(600, 300, 600, 400);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);

        //组件
        JLabel label1 = new JLabel("\u6B22\u8FCE\u767B\u9646\u7A3B\u7530\u7EFC\u5408\u79CD\u517B\u4FE1\u606F\u670D\u52A1\u7CFB\u7EDF");
        label1.setForeground(Color.BLACK);
        label1.setFont(new Font("微软雅黑", Font.BOLD, 30));
        label1.setHorizontalAlignment(SwingConstants.CENTER);
        label1.setBounds(34, 51, 511, 53);
        contentPane.add(label1);

        JLabel label2 = new JLabel("\u7528\u6237\u540D");
        label2.setFont(new Font("宋体", Font.PLAIN, 20));
        label2.setForeground(Color.BLACK);
        label2.setHorizontalAlignment(SwingConstants.CENTER);
        label2.setBounds(77, 136, 72, 32);
        contentPane.add(label2);

        JLabel label3 = new JLabel("\u5BC6\u7801");
        label3.setForeground(Color.BLACK);
        label3.setFont(new Font("宋体", Font.PLAIN, 20));
        label3.setHorizontalAlignment(SwingConstants.CENTER);
        label3.setBounds(77, 208, 72, 32);
        contentPane.add(label3);

        setVisible(true);
        setTitle("登陆");

        //登陆界面布局
        JButton button1=new JButton("登陆");
        button1.setBounds(147, 284, 113, 27);
        contentPane.add(button1);

        JTextField textField=new JTextField();
        textField.setBounds(177, 140, 302, 24);
        contentPane.add(textField);
        textField.setFont(new Font("宋体",Font.PLAIN,20));
        textField.setColumns(10);

        JPasswordField passwordField=new JPasswordField();
        passwordField.setBounds(177, 214, 302, 24);
        passwordField.setFont(new Font("宋体",Font.PLAIN,20));
        contentPane.add(passwordField);

        JButton button2 = new JButton("清除");
        button2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                textField.setText("");
                passwordField.setText("");
            }
        });
        button2.setBounds(330, 284, 113, 27);
        contentPane.add(button2);

        //设置背景
        ImageIcon imageIcon=new ImageIcon("src/picture/1.jpg");
        JLabel label=new JLabel(imageIcon);
        label.setBounds(0, 0, imageIcon.getIconWidth(), imageIcon.getIconHeight());
        getLayeredPane().add(label,new Integer(Integer.MIN_VALUE));
        JPanel panel=(JPanel)getContentPane();
        panel.setOpaque(false);
        JPanel panel2=new JPanel();
        panel2.setOpaque(false);
        panel2.setLayout(null);

        //登陆功能

        textField.setText("admin");
        passwordField.setText("123");
        button1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                String str=textField.getText();
                char ch[]=passwordField.getPassword();
                String pass=new String(ch);

                /*
                boolean bool1= str=="admin";
                boolean bool2= pass=="123";

                System.out.println(bool1);
                System.out.println(bool2);
                */
                if (str.equals("admin") && pass.equals("123") ){
                    mainpage p=new mainpage();
                    dispose();
                }
                else {
                    JOptionPane.showMessageDialog(null, "用户名或密码错误!","登陆失败!",JOptionPane.PLAIN_MESSAGE);
                }
            }
        });
    }
}net/upload/201904/14/1555247311_358896.jpg)


图片说明
图片说明

2个回答

可能是图片路径的问题,打成可执行jar包后的图片文件如果也被打入jar包中的话,是不是应该调整下图片文件的读取方式。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问