Użycie komponentów graficznych i obsługa zdarzeń (II)

  1. Porównaj poniższy przykład z poprzednim (6.1). Przetestuj i przedyskutuj z kolegami.

  2. Dodaj przyciski '+' i '=' i oprogramuj je tak żeby zrealizować operację dodawania dwóch liczb.

  3. Dodaj obsługę sytuacji wyjątkowych.

demo.jar


import javax.swing.*;
import java.awt.event.*;
import java.awt.*;


public class Demo implements ActionListener
{
   JTextField t1;
   JButton b1;
   JButton b2;
   
   public void actionPerformed(ActionEvent e)  
   {                                           
      Object target = e.getSource();           
                                               
      if(target==b1||target==t1)               
      {                                        
         int i=Integer.parseInt(t1.getText()); 
         t1.setText(Integer.toString(2*i));    
         t1.requestFocus();                    
      }                                        
      else if (target==b2)                     
      {                                        
         t1.setText("");                       
         t1.requestFocus();                    
      }                                        
   }                                           
   
   void init()                                          
   {                                                    
      t1=new JTextField(6);                             
      b1=new JButton("*2");                             
      b2=new JButton("clear");                          
                                                        
      JPanel p=new JPanel();                            
      p.add(t1);                                        
      p.add(b1);                                        
      p.add(b2);                                        
                                                        
      t1.addActionListener(this);                       
      b1.addActionListener(this);                       
      b2.addActionListener(this);                       
                                                        
      JFrame f=new JFrame();                            
      Container c=f.getContentPane();                   
      c.add(p);                                         
      f.setSize(200,60);                                
      f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      f.setVisible(true);                               
   }                                                    
   
   public static void main(String[] args) 
   {                                      
      new Demo().init();                  
   }                                      
}