文本区当然有显示了 你的JTextField里面没有内容 所以显示不出来

解决方案 »

  1.   

    p1.add ( jtResult = new JTextField() );//不能显示 
    这一句改成
    p1.add ( jtResult = new JTextField( 10 ) );
      

  2.   

    p1.add ( jtResult = new JTextField() );//不能显示 
    这一句改成
    p1.add ( jtResult = new JTextField( 10 ) );
      

  3.   

    定义JTextField的在界面上显示的宽度。
      

  4.   

    //你没有给文本框指定宽度,默认的宽度是0,所以不显示了
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class Form1 extends JFrame implements ActionListener{
      private JTextField jtNum1, jtNum2, jtResult;
      private JButton jbAdd,jbSub, jbMulti, jbDiv;  public static void main(String[] arvg){
      Form1 form1 = new Form1();
      form1.pack ();
      form1.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
      form1.setVisible (true);
    }   Form1(){
    JPanel p1 = new JPanel();
    p1.setLayout ( new FlowLayout() );
    p1.add ( new JLabel("Number 1") );

    p1.add ( jtNum1 = new JTextField("",10) );//这样就能显示
    p1.add ( new JLabel("Number 2") );
    p1.add ( jtNum2 = new JTextField("",10) );//这样就能显示
    p1.add ( new JLabel("Result"));
    p1.add ( jtResult = new JTextField("",10) );//这样就能显示
      jtResult.setEditable (false);
    JPanel p2 = new JPanel();
    p2.setLayout ( new FlowLayout() );
    p2.add ( jbAdd = new JButton("Add") );
    p2.add ( jbSub = new JButton("Subtract") );
    p2.add ( jbMulti = new JButton("Multipty"));
    p2.add ( jbDiv = new JButton("Divide") );
    jbAdd.addActionListener (this);
    jbSub.addActionListener (this);
    jbMulti.addActionListener (this);
    jbDiv.addActionListener (this); getContentPane().setLayout (new BorderLayout());
    getContentPane().add (p1, BorderLayout.CENTER);
    getContentPane().add (p2, BorderLayout.SOUTH);
       }   public void actionPerformed(ActionEvent e){
    if( e.getSource () == jbAdd ){
    double num1 = ( Double.parseDouble ( jtNum1.getText ().trim () ) );
    double num2 = ( Double.parseDouble ( jtNum2.getText ().trim () ) );
    double result = num1 + num2;
    jtResult.setText (String.valueOf ( result ));
    } if( e.getSource () == jbSub ){
    double num1 = ( Double.parseDouble ( jtNum1.getText ().trim () ) );
    double num2 = ( Double.parseDouble ( jtNum2.getText ().trim () ) );
    double result = num1 - num2;
    jtResult.setText (String.valueOf ( result ));
    } if( e.getSource () == jbMulti ){
    double num1 = ( Double.parseDouble ( jtNum1.getText ().trim () ) );
    double num2 = ( Double.parseDouble ( jtNum2.getText ().trim () ) );
    double result = num1 * num2;
    jtResult.setText (String.valueOf ( result ));
    } if( e.getSource () == jbDiv ){
              //除数为零时,如何写异常,运行时总要出错
       try{
    double num1 = ( Double.parseDouble ( jtNum1.getText ().trim () ) );
    double num2 = ( Double.parseDouble ( jtNum2.getText ().trim () ) );
    if(num2 == 0)
    throw new RuntimeException("The num2 can be zero !"); double result = num1 + num2;
    jtResult.setText (String.valueOf ( result ));
    }catch(RuntimeException b){
    System.out.println ("The num2 can be zero !");
    }
    }
       }}