2013年6月18日 星期二

Area calculation via GUI

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JRootPane;
import javax.swing.JTextField;

class   NewFrame extends JFrame implements ActionListener {
    JPanel panel = new JPanel();
      JPanel toppanel=new JPanel();
      JPanel middlepanel=new JPanel();
      JPanel bottompanel=new JPanel();
     private JLabel WidthLabel;
     private JLabel HeightLabel;
     private JLabel LengthLabel;
     private JLabel TopLabel;
     private JLabel BottomLabel;
     private JButton PressResult;
       

    JTextField Winput = new JTextField();
    JTextField Hinput = new JTextField();
    JTextField Linput=new JTextField();
    JTextField Tinput=new JTextField();
    JTextField Binput=new JTextField();
    JTextField result=new JTextField();
     int choicenum=1;
 

    String subject[] = {"1.三角形", "2. 矩形", "3. 梯形", "4. 離開"};
    NewFrame()
    {
       
    //  setLayout(new FlowLayout(FlowLayout.LEFT));
      JList list = new JList(subject);
      JComboBox comboBox = new JComboBox<String>(subject);
     
      panel.add(toppanel);
      panel.add(middlepanel);
      panel.add(bottompanel);
     
     
      panel.setLayout(new GridLayout(3,1 ));
        setUndecorated(true);
        getRootPane().setWindowDecorationStyle(JRootPane.PLAIN_DIALOG);
       toppanel.add(comboBox);
   
      
       LengthLabel = new JLabel("長度");   
        Linput=new JTextField(5);
           WidthLabel = new JLabel("寬度");
           Winput = new JTextField(5);     

          
               TopLabel = new JLabel("上底");   
                Tinput=new JTextField(5);
          BottomLabel = new JLabel("下底");   
          Binput=new JTextField(5);
          HeightLabel = new JLabel("高度");
           Hinput = new JTextField(5);
   
   
       
        PressResult=new JButton("Press");
        PressResult.addActionListener(this);
        bottompanel.add(PressResult);
        result=new JTextField(5);
        bottompanel.add(result);
   
        add(panel);
        setSize(500,400);
        setVisible(true);
        setTitle("四方形面積");       
        comboBox.addActionListener(this);
       
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   
  
    }
    public void actionPerformed(ActionEvent e) {
        System.out.println("testing99:" +e.getActionCommand());
        if (e.getActionCommand().equals("comboBoxChanged")) comboselect(e);
       if (e.getActionCommand().equals("Press")) getarea(e);
  
    }


void  comboselect(ActionEvent e){

   
    JComboBox comboBox = (JComboBox) e.getSource();
   
 
    Object selected = comboBox.getSelectedItem();
    System.out.println("Selected Item  = " + selected);
    String command = e.getActionCommand();
    System.out.println("Action Command = " + command);
  
   
    String selstr=selected.toString();
    System.out.println("test ="+ selstr);
    System.out.println("width="+Winput.getText());
     choicenum=Integer.parseInt(selstr.substring(0,1));
     switch(choicenum){
        case 1:
           middlepanel.removeAll();
           repaint();
            middlepanel.add(WidthLabel);
         middlepanel.add(Winput);       
         middlepanel.add(HeightLabel);
         middlepanel.add(Hinput);
        
           break;
        case 2:
           middlepanel.removeAll();
           repaint();
           middlepanel.add(WidthLabel);
        middlepanel.add(Winput);       
        middlepanel.add(LengthLabel);
        middlepanel.add(Linput);
       
            break;
        case 3:
          
         middlepanel.removeAll();
         repaint();
           middlepanel.add(TopLabel);
        middlepanel.add(Tinput);
        middlepanel.add(BottomLabel);
        middlepanel.add(Binput);
        middlepanel.add(HeightLabel);
        middlepanel.add(Hinput);
          
        break;
        case 4:
         
             break;           
        default:
        System.out.println("You must enter a valid choice ");
        break;
        }
     add(panel);
           //    setSize(500,400);
               setVisible(true);
  }
   

void getarea(ActionEvent e){
   
    int area;
     System.out.println("Width "+ Winput.getText());
     System.out.println("Height "+ Hinput.getText());


        switch(choicenum){
        case 1:
           area=Integer.parseInt(Winput.getText())*Integer.parseInt(Hinput.getText())/2;
          
           result.setText(Integer.toString(area));
           result.updateUI();
           System.out.println("the result "+  area);
           break;
        case 2:
           area=(Integer.parseInt(Winput.getText()))*(Integer.parseInt(Linput.getText()));
         result.setText(Integer.toString(area));
          result.updateUI();
          System.out.println("the result "+  area);
            break;
        case 3:
            area=(Integer.parseInt(Tinput.getText())+Integer.parseInt(Binput.getText()))*Integer.parseInt(Hinput.getText())/2;
            result.setText(Integer.toString(area));
            result.updateUI();
            System.out.println("the result "+  area);
        break;
        case 4:
           System.out.println("Bye !!! Bye !!! ");
              
             break;           
        default:
        System.out.println("You must enter a valid choice ");
        break;
        }

      
   
}   
}
 public class GUISample {
  public static void main(String[] args) {
   
   new NewFrame();
  
   
    } 
 }

沒有留言:

張貼留言

 Python install twine on Mac 1. Need to install macports first, https://ports.macports.org/port/twine/  2.  sudo port install twine   Pychar...