java应用程序GUI在导出后响应不同

时间:2016-08-04 21:32:51

标签: java swing user-interface repaint validate-request

我的应用程序在eclipse IDE上运行正常,但在导出之后,名声不会重新粉刷。 我试图通过删除两个JPanel来重建JFrame的布局,并再添加更多的面板和放大器。这是我的代码:

应用程序首先调用buildGUI()

 private void buildGUI(){
        setTitle("MyApp");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setContentPane(new BackGroundImagePanel());
        setResizable(false);
        getContentPane().setLayout(new GridBagLayout());
        c = new GridBagConstraints();

        /*
        *set up GridBagConstraints and add the two panels
        */

        pack();
        setSize(700, 700);
        revalidate();
        setLocationRelativeTo(null);
    }

根据用户输入进行一些计算&调用reBuildGUI():

private void reBuildGUI(){
        //Clean the frame.
        remove(firstPanel);
        remove(secondPanel);
        //removeAll() doesn't work for me;
        validate();
        repaint();

        /*
        *set up GridBagConstraints and more panels
        */

        pack();
        setSize(700, 700);
        repaint();
        validate();
}

再次,应用程序工作在IDE上执行,但不是作为独立的jar,在调用reBuildGUI()时没有任何反应! 试图使用validate(),revalidate()& pack()以不同的顺序没有收益?

1 个答案:

答案 0 :(得分:0)

Hovercraft:你是对的,代码还不够,很抱歉,但我会粘贴代码页,并不足以调试它。

这是故障排除:   - 指示记录器登录到文件(使用文件处理程序)。   - 找到记录器停止的地方。   - 添加更精细&最好的日志记录,直到找到错误。

错误在这行中的另一个类方法深处埋葬了:

addOnImage = ImageIO.read(getClass().getClassLoader().getResource("images/AddTextOn.png"));

实际文件名为" ADDTextOn.png"但Eclipse能够将其读作" AddTextOn.png"虽然JRE不是,但没有任何事情表明任何错误,该程序只是什么都不做。