for(int i=1;i<=m;i++)

{
String c=S.get(4*i-2).toString();//S为一向量,从中取出第4*i-2个记录(textfield中的记录),将它由object型转化成String型,再转化成int型
if(c!="")
  total=total+Integer.parseInt(c);

//将每条记录的第二个元素由object转化成int型
}
//t5是一个TextArea组件
     t5.append("你购买了"+m+"种商品  总金额为:"+total+"元  欢迎付款,谢谢"+"\n");
}
可以运行,但是
t5.append("你购买了"+m+"种商品  总金额为:"+total+"元  欢迎付款,谢谢"+"\n");
输不出来,一到这就卡

解决方案 »

  1.   

    if(c!="")
    total=total+Integer.parseInt(c);比较字符串,使用if(!c.equal(""))
      

  2.   

    //不知道LZ说的卡是什么意思,报Exception么,还是程序没反应? 可以的话贴下错误代码。
    //我只改了个字符串判断,另外叫了个catch for(int i=1;i<=m;i++){
    String c=S.get(4*i-2).toString();//S为一向量,从中取出第4*i-2个记录(textfield中的记录),将它由object型转化成String型,再转化成int型
    if(!c.equals(""))
    {
    try 
    {
    total=total+Integer.parseInt(c);
    }catch(NumberFormatException e)
    {
    e.printStackTrace;
    }
    }
       
    }
      t5.append("你购买了"+m+"种商品 总金额为:"+total+"元 欢迎付款,谢谢"+"\n");
    }
      

  3.   

    好像不是if(!c.equals(""))这个地方错了,
    感觉应该是:
    for(int i=1;i<=m;i++){
    String c=S.get(4*i-2).toString();//S为一向量,从中取出第4*i-2个记录(textfield中的记录),将它由object型转化成String型,再转化成int型
    if(c!="")
    total=total+Integer.parseInt(c);

    这部分错了
      

  4.   

    把全部代码贴出来吧~
    是一个小程序:
    代码:import java.awt.*;
    import java.util.Vector;
    import java.awt.event.*;
    public class Shop {
    /**
     * @param args
     */
    int n=1,m=1;
    Choice l=new Choice();
    Vector S=new Vector();
    Frame f=new Frame();
    Panel p1=new Panel();
    Panel p2=new Panel();
    Panel p3=new Panel();
    Panel p4=new Panel();
    Button b1=new Button("添加");
    Button b2=new Button("删除");
    Button b3=new Button("定位");
    Button b4=new Button("清空");
    Button b5=new Button("付款");
    Button b6=new Button("清单");
    Button b7=new Button("清屏");
    Button b8=new Button("首位");
    Button b9=new Button("末位");
    Label l1=new Label("品名");
    Label l2=new Label("数量");
    Label l3=new Label("单价");
    TextField t1=new TextField();TextField t2=new TextField();
    TextField t3=new TextField();
    TextField t4=new TextField();
    TextArea t5=new TextArea();
    public Shop(){p1.setLayout(new GridLayout(1,8));
    p4.setEnabled(true);
    t5.setSize(80,50);
    p2.setLayout(new BorderLayout());
    p2.add(p3,"North");
    p2.add(p4,"Center");f.add(p1,"North");
    f.add(p2,"Center");
    p1.add(l1);
    p1.add(t1);
    p1.add(l2);
    p1.add(t2);
    p1.add(l3);
    p1.add(t3);
    p1.add(b1);
    p1.add(b2);
    p3.add(b3);
    p3.add(t4);
    p3.add(b4);
    p3.add(b5);
    p3.add(b6);
    p3.add(b7);
    p3.add(b8);
    p3.add(b9);
    p2.add(p4);
    p4.add(t5);// t5.setSize(50,50);
    f.addWindowListener(new WindowAdapter(){ 
    public void windowClosing(WindowEvent e)
    {System.exit(1);}
    });
    f.setBackground(new Color(250,200,200));
    f.setSize(500,300);
    f.setVisible(true);// t5.setText(S.toString());
    b1.addActionListener(new Monitor());  
    b2.addActionListener(new Monitor());
    b3.addActionListener(new Monitor());
    b4.addActionListener(new Monitor());
    b5.addActionListener(new Monitor());
    b6.addActionListener(new Monitor());
    b7.addActionListener(new Monitor());
    b8.addActionListener(new Monitor());
    b9.addActionListener(new Monitor());
    }
    public static void main(String[] args) {
    Shop p=new Shop();
    // TODO Auto-generated method stub
    //设置窗口中各部件布局
    }
    private class Monitor implements ActionListener{
    public void actionPerformed(ActionEvent e){
         String s=(String)e.getActionCommand();
    if(s.equals("添加"))   
    {
    S.add(t1.getText());
        S.add(t2.getText());
        S.add(t3.getText());
        S.add(t4.getText());
        t5.append("添加"+m+"记录  "+S.get(n-1)+"   数量"+S.get(n)+"斤   单价"+S.get(n+1)+"元   "+"\n");
        n=n+4;
        m++;
    }
    if(s.equals("删除"))
    {
    S.clear();

    }
    if(s.equals("清屏"))
    t5.setText("");
    if(s.equals("付款"))
    {
    int total=0;
    for(int i=1;i<=m;i++)

    {
    String c=S.get(4*i-2).toString();
    if(!c.equals(""))
    total=total+Integer.parseInt(c);

    //将每条记录的第二个元素由object转化成int型
    }
    t5.append("你购买了"+m+"种商品  总金额为:"+total+"元  欢迎付款,谢谢"+"\n");
    }
    }
    }
    }
    程序功能:
    1、网上购物结算模拟
    程序功能:创建模拟购物结算界面并实现结算功能。其中使用了内部类和Vector 向量。运行程序后,可输入购买记录,单击“添加”按钮将保存记录到Vector 向量中,并可以显示任意一个记录,或按记录号删除记录,并可给出购买物品总额,并可清空所有记录。
    很简单的程序,但是java初学者,希望各位高手帮忙看一下。
      

  5.   

    最后的循环 for (int i = 1; i <= m; i++)  
    改成 for (int i = 1; i < m; i++)  
    数组越界了。