本人使用JAVA的时间不长,今天在编程的过程中遇到这个问题请各位高手帮助解决下!~~~~
程序大框如下:   import java.awt*;
   import java.awt.event.*;
   public class ExaMenu extends Frame{
CardLayout myCard;
                Panel cPanel;
           ExaMenu(){
                myCard = new CardLayout();
                cPanel = new Panel();
                cPanel.setLayout(myCard);
                
                Panel panel1 = new Panel();
                Panel panel2 = new Panel();
                Panel panel3 = new Panel();

                
l1=new Label("数a");   l2=new Label("数b");
text1=new TextField(10);
text2=new TextField(10);
text3=new TextField(10);
button1=new Button("加");
panel1.add(l1); panel2.add(text1); panel3.add(l2);                 cPanel.add(panel1);
                cPanel.add(panel2);
                cPanel.add(panel3);
                add(cPanel,BorderLayout.CENTER);
setSize(500,100);
setVisible(true);
button1.addActionListener(this);
}
public void actionPerformed(ActionEvent e){ 
                 double n;
if(e.getSource()==button1){
try{
double  n1, n2;
n1=Double.parseDouble(text1.getText());   
                                n1=Double.parseDouble(text1.getText()); 
n=n1+n2;
text3.setText(String.valueOf(n));   
}catch(NumberFormatException ex){
System.out.println("请输入数字!");
}
}

addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public static void main(String args[]){
new ExaMenu("Menu");
}
}
一编译就提示:cPanel.add(panel1);这条语句错误!哪位高手能帮助解决一下啊!~~~~~

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【sunrise112】截止到2008-07-10 18:04:39的历史汇总数据(不包括此帖):
    发帖的总数量:0                        发帖的总分数:0                        每贴平均分数:0                        
    回帖的总数量:3                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:0                        结贴的总分数:0                        
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:---------------------结分的百分比:---------------------
    无满意结贴率:---------------------无满意结分率:---------------------
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  2.   

    使用CardLayout的时候, cPanel.add(panel1);这种调用方式不正确。jdk文档说明 :
    public void add(Component comp,
                    Object constraints)将指定的组件添加到此容器的尾部。同时通知布局管理器使用指定的 constraints 对象将组件添加到此容器的布局中。这是一个适用于 addImpl(java.awt.Component, java.lang.Object, int) 的便捷方法。 
    注:如果已经将某个组件添加到显示的容器中,则必须在此容器上调用 validate,以显示新的组件。如果添加多个组件,那么可以在添加所有组件之后,通过只调用一次 validate 来提高效率。 
      

  3.   

    我很少用这个layoutimport java.awt.*;
    import java.awt.event.*;public class ExaMenu extends Frame implements ActionListener {
        CardLayout myCard;    Panel cPanel;    private Label l1;    private Label l2;    private TextField text1;    private TextField text2;    private TextField text3;    private Button button1;    ExaMenu(String string) {
            super(string);
            myCard = new CardLayout();
            cPanel = new Panel();
            cPanel.setLayout(myCard);        Panel panel1 = new Panel();
            Panel panel2 = new Panel();
            Panel panel3 = new Panel();        l1 = new Label("数a");
            l2 = new Label("数b");
            text1 = new TextField(10);
            text2 = new TextField(10);
            text3 = new TextField(10);
            button1 = new Button("加");
            panel1.add(l1);
            panel1.add(button1);
            panel2.add(text1);
            panel3.add(l2);        cPanel.add(panel1, "1");
            cPanel.add(panel2, "2");
            cPanel.add(panel3, "3");
            add(cPanel, BorderLayout.CENTER);
            setSize(500, 100);
            setVisible(true);
            button1.addActionListener(this);
        }    public void actionPerformed(ActionEvent e) {
            double n;
            if (e.getSource() == button1) {
                try {
                    double n1, n2 = 0;
                    n1 = Double.parseDouble(text1.getText());
                    n1 = Double.parseDouble(text1.getText());
                    n = n1 + n2;
                    text3.setText(String.valueOf(n));
                } catch (NumberFormatException ex) {
                    System.out.println("请输入数字!");
                }
            }    }    {
            addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
            });
        }    public static void main(String args[]) {
            new ExaMenu("Menu");
        }
    }
      

  4.   

    除了null布局,我从来没用过别的布局