2011年3月26日

<Java> JVA305-理想體重計算







import java.awt.*;
import java.awt.event.*;
public class JVA305 extends Frame
{
  public JVA305() {   super("理想體重計算"); }
  //輸入身高的元件
  Panel pl1 = new Panel();
  Label l1 = new Label("請輸入身高");
  TextField tf1 = new TextField(2);
  //輸入體重的元件
  Panel pl2 = new Panel();
  Label l2 = new Label("請輸入體重");
  TextField tf2 = new TextField(2);
  //選擇性別的元件
  Panel pl3 = new Panel();
  Label l3 = new Label("請選擇性別");
  CheckboxGroup ckg = new CheckboxGroup();
  Checkbox ck1 = new Checkbox("男性",ckg,true);
  Checkbox ck2 = new Checkbox("女性",ckg,true);
  //顯示訊息區
  Panel pl4 = new Panel();
  Label l4 = new Label("歡迎使用",Label.CENTER);
  Label l5 = new Label(" ",Label.CENTER);
  //按鈕區
  Panel pl5 = new Panel();
  Button b1 = new Button("確定");
  Button b2 = new Button("離開");

  public static void main(String[] args)
  {
    JVA305 jv03 = new JVA305();
    jv03.go();
  }

  /*
* 建立畫面的 method
*/

  public void go()
  {

    /*
* 請自行完成建立畫面的程式碼
*/


   pl1.add(l1);
   pl1.add(tf1);

   pl2.add(l2);
   pl2.add(tf2);

   pl3.add(l3);
   pl3.add(ck1);
   pl3.add(ck2);

   pl4.add(l4);
   pl4.add(l5);

   pl5.add(b1);
   pl5.add(b2);

   Panel cp = new Panel();
   cp.setLayout(new GridLayout(6,1));
   cp.add(pl1);
   cp.add(pl2);
   cp.add(pl3);
   cp.add(l4);
   cp.add(l5);
   cp.add(pl5);

   add(cp);

    setSize(250,200);
    setVisible(true);
    addWindowListener(new WinListener());
   b1.addActionListener(new act());
   b2.addActionListener(new act());
  }

  //建立一個 ActionListener 的 inner class
  class act implements ActionListener
  {
    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource() == b2)
        {
           System.exit(0);
        }
        else if(e.getSource() == b1)
        {
            float nh = 0; //現在身高
            float nw = 0; //現在體重
            float iw = 0; //理想體重

            /*
* 請自行完成建立畫面的程式碼
*/

         boolean check = true;
         try{
   
            nh = Float.parseFloat(tf1.getText());
            if( (nh < 110)||( nh > 210) ){
               throw new Exception();
            }
         }catch(Exception et){
            l4.setText("身高不正確,成人應介於110至210之間");
            l5.setText("");
            check = false;
         }
         try{
            nw = Float.parseFloat(tf2.getText());
            if( (nw < 25)||( nw > 200) ){
               throw new Exception();
            }
         }catch(Exception et){
            l4.setText("體重不正確,成人應介於25至200之間");
            l5.setText("");
            check = false;
         }
         if(check){
         if(   ck1.getState() ){
            iw = (nh-80)*0.7f;
            l4.setText("你的理想體重為"+ iw + "公斤");
            if( (nw-iw) > (iw*0.1f) ){
               l5.setText("你稍微胖了些,請少飲酒少應酬");
            }else if( (iw-nw) > (iw*0.1f) ){
               l5.setText("你稍微瘦了些,請多補充些營養");
            }else{
               l5.setText("你的體態控制的不錯");
            }
   
         }else if( ck2.getState() ){
            iw = (nh-70)*0.6f;
            l4.setText("妳的理想體重為"+ iw + "公斤");
            if( (nw-iw) > (iw*0.1f) ){
               l5.setText("妳稍微胖了些,請節制飲食多做運動");
            }else if( (iw-nw) > (iw*0.1f) ){
               l5.setText("妳稍微瘦了些,請多補充些營養");
            }else{
               l5.setText("妳的身材維持得很好");
            }
   
         }
         }
         }
    }
  }

  //讓視窗可以正常關閉
  class WinListener extends WindowAdapter
  {
    public void windowClosing(WindowEvent e)
    {
      e.getWindow().dispose();
      System.exit(0);
    }
  }
}

沒有留言:

張貼留言