小弟刚学java..
在做作业的时候遇到个问题..请专家们解答下!小弟在编一个加法程序..
Integer.parseInt(text1.getText())+Integer.parseInt(text2.getText());text3如何取得text1+text2的值的和呢?而且数据类型不出错呢?类型不变就成了string类型出错了.!就在类型问题上卡住了..请专家解答下..谢谢!

解决方案 »

  1.   

    网上找个IntegerField,只允许输入整数的文本框。
    或者你也可以通过捕捉异常来处理。
      

  2.   

    楼上的大哥..如果我不用网上的插件..还是用回原来的textfield呢?如何实现呢?
    还有捕抓异常是怎么弄呢?能说详细点嘛?我还是一个新手...谢谢
      

  3.   

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;public class Test10_13 extends JFrame implements ActionListener{
    JTextField text1,text2,text3;

    JLabel jlabel1,jlabel2;

    JButton jbutton;

    JPanel panel1;


     Test10_13() {
    // TODO 自动生成构造函数存根 
     Container c=getContentPane();
    text1=new JTextField(10);
    text2=new JTextField(10);
    text3=new JTextField(10);
    jlabel1=new JLabel("+");
    jlabel2=new JLabel("=");
    jbutton=new JButton("结果");
    panel1=new JPanel();
    panel1.add(text1);
    panel1.add(jlabel1);
    panel1.add(text2);
    panel1.add(jlabel2);
    panel1.add(text3);
    panel1.add(jbutton);
    c.add(panel1);
    jbutton.addActionListener(this);
    text3.setEditable(false);
    } /**
     * @param args
     */
     public void actionPerformed(ActionEvent e) {
    // TODO 自动生成方法存根
     
     if(e.getSource()==jbutton){ //如何才能把加法生效呢?
                            //在类型上卡住了..text3如何获得text1+text2的和呢?   }

    }
    public static void main(String[] args) {
    // TODO 自动生成方法存根
    JFrame j=new Test10_13();
    j.setSize(400,200);
    j.setVisible(true);

    }
    }
      

  4.   

    楼主说的很明白,这个问题很简单啊,可能是因为你没有给分的缘故吧。代码如下:
    text3.setText()=""+Integer.parseInt(text1.getText())+Integer.parseInt(text2.getText()); 
      

  5.   

    谢谢楼上的...但也是不行..我自己问了老师了.!问题解决了!谢谢各位
    //double a=Integer.parseInt(text1.getText());
    //double b=Integer.parseInt(text2.getText());
    //double c=0.0;
    //c=a+b;
    //text3.setText(String.valueOf(c));原来这么简单..呵呵!就忘了一点...圈子就绕不回来了!
      

  6.   

    字符串->整型
    Integer.parseInt(s)
    整型->字符串
    String.valueof(i)
      

  7.   


    我觉得4楼的说得很好啊,只是他可能忽略了一个小问题,打个比方,如果他算的是:3+4的话,用4楼的就得到了34,因为他是用""连了3,变成了"3",又连4,所以会变成34,所以应该只需要改一点点,
    text3.setText()=Integer.parseInt(text1.getText())+Integer.parseInt(text2.getText())+""; 
    强烈建议4楼的想法,利用空字符串连接是一个小小的技巧.
      

  8.   

    /* 本程序包含txd1,txd2,txd3三个文本框和一个标签(+)以及一个按钮(计算),实现简单的加法计算*/
    import java.awt.*;
    import java.awt.event.*;
    public class a extends Frame implements ActionListener{
    static a frm = new a();
    static TextField txd1 = new TextField();
    static TextField txd2 = new TextField();
    static TextField txd3 = new TextField();
    public static void main(String [] args){
    Label lab = new Label("+");
    Button btn = new Button("计算");
    btn.addActionListener(frm);
    frm.add(txd1);
    frm.add(txd2);
    frm.add(lab);
    frm.add(txd3);
    frm.add(btn);
    txd3.setEditable(false);//让txd3不可编辑
    txd3.setFocusable(false);//让txd3不能获得焦点
    frm.setLayout(new FlowLayout());
    /* 响应关闭按钮的事件
    frm.addWindowListener( new WindowAdapter()
                       { 
                          public void windowClosing(WindowEvent e)
                          {
                           System.exit(0);
                          }
                        }
                      );
    */                   
    frm.setSize(300,300);
    frm.setVisible(true);
    }
    public void actionPerformed(ActionEvent e){
    int c;
    c=Integer.parseInt(txd1.getText())+Integer.parseInt(txd2.getText()); 
    txd3.setText(Integer.toString(c));
    }
    }
    试试这个吧,由于这几天也学这个,所以就做了!
      

  9.   

    4楼的应该是打错了把.
    正确的是:
    text3.setText(""+Integer.parseInt(text1.getText())+Integer.parseInt(text2.getText())); 
      

  10.   

    谢谢各位的帮助啊...测试过10楼的方法可行..
    其他的都变成了两个数连接起来了..就像1+2=12了..呵呵!是类型转换问题吧!
    小弟有个想法..就是判断如果TEXT1和TEXT2没有输入东西按了"计算"那就弹出消息框提示没输入数值~!
    不知道哪位专家可以解答一下..谢谢!
      

  11.   

    if(txd1.getText.equals("")||
    text2.getText().equals("")){
    JOptionPane.showMessageDialog(null, "没输入数值,number 不能为空!");
    }放在c=Integer.parseInt(txd1.getText())+Integer.parseInt(txd2.getText());  之前.
    OK!
      

  12.   

    if(txd1.getText.equals("")||
    text2.getText().equals("")){
    JOptionPane.showMessageDialog(null, "没输入数值,number 不能为空!");
    }
    加入这个语句的话,应该要在开头加入import javax.sing.*; 的!
      

  13.   

    if(txd1.getText.equals("") ¦ ¦ 
    text2.getText().equals("")){ 
    JOptionPane.showMessageDialog(null, "没输入数值,number 不能为空!"); 

    加入这个语句的话,应该要在开头加入import javax.swing.*; 的!
      

  14.   

    我将完整程序帖出来吧,同时也谢谢13楼给的思路!/* 本程序包含txd1,txd2,txd3三个文本框和一个标签(+)以及一个按钮(计算),实现简单的加法计算*/ 
    import java.awt.*; 
    import java.awt.event.*;
    import javax.swing.*; 
    public class Cadd extends Frame implements ActionListener{ 
    static Cadd frm = new Cadd(); 
    static TextField txd1 = new TextField(); 
    static TextField txd2 = new TextField(); 
    static TextField txd3 = new TextField(); 
    public static void main(String [] args){ 
    Label lab = new Label("+"); 
    Button btn = new Button("计算"); 
    btn.addActionListener(frm); 
    frm.add(txd1); 
    frm.add(txd2); 
    frm.add(lab); 
    frm.add(txd3); 
    frm.add(btn); 
    txd3.setEditable(false);//让txd3不可编辑 
    txd3.setFocusable(false);//让txd3不能获得焦点 
    frm.setLayout(new FlowLayout()); 
    // 响应关闭按钮的事件 
    frm.addWindowListener( new WindowAdapter() 
                      { 
                          public void windowClosing(WindowEvent e) 
                          { 
                          System.exit(0); 
                          } 
                        } 
                      ); 
                      
    frm.setSize(300,300); 
    frm.setVisible(true); 

    public void actionPerformed(ActionEvent e){ 
    if(txd1.getText().equals("")&&txd2.getText().equals(""))
    JOptionPane.showMessageDialog(null,"请在文本框中输入数值");
    else if(txd1.getText().equals(""))
    JOptionPane.showMessageDialog(null,"请在第一个文本框中输入数值");
    else if(txd2.getText().equals(""))
    JOptionPane.showMessageDialog(null,"请在第二个文本框中输入数值");
    int c; 
    c=Integer.parseInt(txd1.getText())+Integer.parseInt(txd2.getText()); 
    txd3.setText(Integer.toString(c));