第9章课后答案

一、问答题

1.Frame容器的默认布局是BorderLayout布局。

2.不可以。

3.ActionEvent。

4.DocumentEvent。

5.5个。

6.MouseMotionListener。

二、选择题

1.C。2.A。3.A。4.D。5C。

三、编程题

1. import java.awt.*;

import javax.swing.event.*;

import javax.swing.*;

import java.awt.event.*;

public class E {

   publicstatic void main(String args[]) {

      Computerfr=new Computer();

   }

}

class Computer extends JFrame implementsDocumentListener {

   JTextAreatext1,text2;

   intcount=1;

   doublesum=0,aver=0;

   Computer(){

     setLayout(new FlowLayout());

     text1=new JTextArea(6,20);

     text2=new JTextArea(6,20);

      add(newJScrollPane(text1));

      add(newJScrollPane(text2));

     text2.setEditable(false);

     (text1.getDocument()).addDocumentListener(this);

     setSize(300,320);

     setVisible(true);

     validate();

     setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

   }

   public voidchangedUpdate(DocumentEvent e) {

      Strings=text1.getText();

      String[]a =s.split("[^0123456789.]+");

      sum=0;

     aver=0; 

      for(inti=0;i<a.length;i++) {

        try {sum=sum+Double.parseDouble(a[i]);

        }

       catch(Exception ee) {}

     }

    aver=sum/count;

    text2.setText(null);

    text2.append("\n和:"+sum);

     text2.append("\n平均值:"+aver);

   }

   public voidremoveUpdate(DocumentEvent e){

     changedUpdate(e); 

   }

   public voidinsertUpdate(DocumentEvent e){

     changedUpdate(e);

   }

}

2.   importjava.awt.*;

import javax.swing.event.*;

import javax.swing.*;

import java.awt.event.*;

public class E {

   public staticvoid main(String args[]) {

     ComputerFrame fr=new ComputerFrame();

   }

}

class ComputerFrame extends JFrame implementsActionListener {

  JTextFieldtext1,text2,text3;

  JButtonbuttonAdd,buttonSub,buttonMul,buttonDiv;

  JLabel label;

  publicComputerFrame() {

   setLayout(newFlowLayout());

   text1=newJTextField(10);

   text2=newJTextField(10);

   text3=newJTextField(10);

   label=newJLabel(" ",JLabel.CENTER);

  label.setBackground(Color.green);

   add(text1);

   add(label);

   add(text2);

   add(text3);

   buttonAdd=newJButton("加");   

   buttonSub=newJButton("减");

   buttonMul=newJButton("乘");

   buttonDiv=newJButton("除");

  add(buttonAdd);

  add(buttonSub);

   add(buttonMul);

  add(buttonDiv);

  buttonAdd.addActionListener(this);

  buttonSub.addActionListener(this);

  buttonMul.addActionListener(this); 

  buttonDiv.addActionListener(this);

  setSize(300,320);

  setVisible(true);

   validate();

  setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

  }  

  public voidactionPerformed(ActionEvent e) {

    double n;

   if(e.getSource()==buttonAdd) {

       doublen1,n2; 

       try{n1=Double.parseDouble(text1.getText());

           n2=Double.parseDouble(text2.getText());

           n=n1+n2;

           text3.setText(String.valueOf(n));

           label.setText("+");

          }

      catch(NumberFormatException ee)

          {text3.setText("请输入数字字符");

          }

     }

    elseif(e.getSource()==buttonSub) {

       doublen1,n2; 

       try{  n1=Double.parseDouble(text1.getText());

           n2=Double.parseDouble(text2.getText());

           n=n1-n2;

           text3.setText(String.valueOf(n));

           label.setText("-");

          }

       catch(NumberFormatExceptionee)

          {text3.setText("请输入数字字符");

          }

     }

     elseif(e.getSource()==buttonMul)

      {doublen1,n2; 

       try{n1=Double.parseDouble(text1.getText());

           n2=Double.parseDouble(text2.getText());

            n=n1*n2;

           text3.setText(String.valueOf(n));

           label.setText("*");

          }

      catch(NumberFormatException ee)

          {text3.setText("请输入数字字符");

          }

      }

      elseif(e.getSource()==buttonDiv)

      {double n1,n2; 

       try{n1=Double.parseDouble(text1.getText());

           n2=Double.parseDouble(text2.getText());

           n=n1/n2;

           text3.setText(String.valueOf(n));

           label.setText("/");

          }

      catch(NumberFormatException ee)

          {text3.setText("请输入数字字符");

          }

      }

     validate();

  }

}

3.   import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class E {

   public staticvoid main(String args[]){

      Window win= new Window();

      win.setTitle("使用MVC结构");

     win.setBounds(100,100,420,260);

   }

}

class Window extends JFrame implements ActionListener {

   Laderlader;             //模型

   JTextFieldtextAbove,textBottom,textHeight;   //视图

   JTextAreashowArea;         //视图

   JButton controlButton;        //控制器

   Window() {

      init();

     setVisible(true);

     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

   }

   void init() {

     lader = newLader();

     textAbove =new JTextField(5);  

     textBottom =new JTextField(5);

     textHeight =new JTextField(5);

     showArea =new JTextArea();   

    controlButton=new JButton("计算面积");

     JPanelpNorth=new JPanel();

    pNorth.add(new JLabel("上底:"));

    pNorth.add(textAbove);

    pNorth.add(new JLabel("下底:"));

    pNorth.add(textBottom);

    pNorth.add(new JLabel("高:"));

    pNorth.add(textHeight);

    pNorth.add(controlButton);

    controlButton.addActionListener(this);

    add(pNorth,BorderLayout.NORTH);

     add(newJScrollPane(showArea),BorderLayout.CENTER);

   }

   public voidactionPerformed(ActionEvent e) {

     try{ 

        doubleabove = Double.parseDouble(textAbove.getText().trim());

        doublebottom = Double.parseDouble(textBottom.getText().trim());

        doubleheight = Double.parseDouble(textHeight.getText().trim());

       lader.setAbove(above) ;         

       lader.setBottom(bottom);

       lader.setHeight(height);

        doublearea = lader.getArea();    

       showArea.append("面积:"+area+"\n");

     }

     catch(Exceptionex) {

       showArea.append("\n"+ex+"\n");

     }

   }

}

class Lader {

    doubleabove,bottom,height;

    public doublegetArea() {

       doublearea = (above+bottom)*height/2.0;

       returnarea;

    }

    public voidsetAbove(double a) {

      above = a;

    }

   public voidsetBottom(double b) {

      bottom = b;

   }

   public voidsetHeight(double c) {

     height = c;

   }

}

猜你喜欢

转载自blog.csdn.net/qq_41045071/article/details/80958336