qq_36765799 2019-04-14 21:09 采纳率: 57.1%
浏览 483
已采纳

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条回答 默认 最新

  • 毕小宝 博客专家认证 2019-04-15 09:44
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)