import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class One {
    public static void main(String[] args) {
        OneF of = new OneF();
        of.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        of.setVisible(true);
    }
}
class OneF extends JFrame {
    public OneF() {
        setTitle("-_-#");
        setSize(180, 180);
        setResizable(false);
        Toolkit tk = Toolkit.getDefaultToolkit();
        Dimension di = tk.getScreenSize();
        setLocation(di.width/4, di.height/4);
        Image ii = tk.getImage("keai.gif");
        setIconImage(ii);

        OneP op = new OneP();
        add(op);
    }
}
class OneP extends JPanel {
    private String lastCommand;
................
........请问 为什么加上那断红色的设置小图标的代码后 我运行程序就连框架图像都不出来了
只要去掉红色的一切又正常   哪位帮我分析下原因 谢谢

解决方案 »

  1.   

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class One {
        public static void main(String[] args) {
            OneF of = new OneF();
            of.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            of.setVisible(true);
        }
    }
    class OneF extends JFrame {
        public OneF() {
            setTitle("-_-#");
            setSize(180, 180);
            setResizable(false);
            Toolkit tk = Toolkit.getDefaultToolkit();
            Dimension di = tk.getScreenSize();
            setLocation(di.width/4, di.height/4);
            
            OneP op = new OneP();
            add(op);
        }
    }
    class OneP extends JPanel {
        private String lastCommand;
        private double result;
        private boolean start;
        private JButton jb;
        private JPanel jp;
        public OneP() {
            result = 0;
            start = true;
            lastCommand = "=";
     
            jb = new JButton("0");
            jb.setEnabled(false);
            add(jb, BorderLayout.NORTH);        jp = new JPanel(); 
            jp.setLayout(new GridLayout(4, 4));
            ActionListener insert = new InsertAction();
            ActionListener command = new CommandAction();
     
            addButton("7", insert);
            addButton("8", insert);
            addButton("9", insert);
            addButton("/", command);        addButton("4", insert);
            addButton("5", insert);
            addButton("6", insert);
            addButton("*", command);        addButton("1", insert);
            addButton("2", insert);
            addButton("3", insert);
            addButton("-", command);        addButton("0", insert);
            addButton(".", insert);
            addButton("=", command);
            addButton("+", command);        add(jp, BorderLayout.CENTER);       
        }
        private void addButton(String s, ActionListener al) {
            JButton jbu = new JButton(s);
            jbu.addActionListener(al);
            jp.add(jbu);
        }
        private class InsertAction implements ActionListener {
            public void actionPerformed(ActionEvent e) {
                String s = e.getActionCommand();
                if(start) {
                    jb.setText("");
                    start = false;
                }
                jb.setText(jb.getText() + s);
            }
        }
        private class CommandAction implements ActionListener {
            public void actionPerformed(ActionEvent e) {
                String s = e.getActionCommand();
                
                calculate(Double.parseDouble(jb.getText()));
                lastCommand = s;
                start = true;
            }
        }
        public void calculate(double x) {
            if(lastCommand.equals("+"))
                result += x;
            else if(lastCommand.equals("-"))
                result -= x;
            else if(lastCommand.equals("*"))
                result *= x;
            else if(lastCommand.equals("/"))
                result /= x;
            else if(lastCommand.equals("="))
                result = x;
            jb.setText(result + "");
        }
    }这是没有那2行红色的完整代码, 加上那2行就不对了   
    哪位帮我调试下看看 谢谢 
      

  2.   

    难道是不能用"keai.gif"  不能用GIF吗? 
    我换了张.png的  程序就正常了书上不是说可以使用GIF吗?
    这是个什么原因呢?
        有明白的帮忙讲讲喏~~~~~!!
      

  3.   

    可以使用gif的,因为我以前做小项目的时候用过。
    你可以试一下在那段红色代码段处加断点,看一下具体是哪一句出问题了。
    你看一下是不是gif图片有问题?是不是太大了,导致程序运行太慢,或者其他原因,你设断点具体看看是哪种情况。