错误提示:
exception in thread "main" java.lasng.IllegalArgumentExcption:
     adding container's parent to itself
     
     at java.awt.Container.addImpl<Unkown Source>
     at java.awt.Container.add<Unknow Source>
     at addressbook.createUserInterface<addressbook.java:73>
     at addressbook.<init><addressbook.java:42>
     at addressbook.main<addressbook.java:165>源代码:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class addressbook extends JFrame
{
   private JLabel firstNameJLabel;
   private JTextField firstNameJTextField;
   
   private JLabel lastNameJLabel;
   private JTextField lastNameJTextField;
   
   private JLabel addressJLabel;
   private JTextField addressJTextField;
   
   private JLabel cityJLabel;
   private JTextField cityJTextField;
   
   private JLabel stateJLabel;
   private JTextField stateJTextField;
   
   private JLabel zipJLabel;
   private JTextField zipJTextField;
   
   private JLabel emailJLabel;
   private JTextField  emailTextField;
   
   private JLabel phoneJLabel;
   private JTextField phoneJTextField;
   
   private JLabel mobileJLabel;
   private JTextField mobileJTextField;
   
   private JLabel beeperJLabel;
   private JTextField beeperJTextField;
   
   private JButton saveJButton;
   private JButton clearJButton;  public addressbook()
  {
    createUserInterface(); 
  }
  
  public void createUserInterface()
  {
   Container container = getContentPane();
   container.setLayout( null );
   
   firstNameJLabel = new JLabel();
   firstNameJLabel.setBounds( 16,16,64,21 );
   firstNameJLabel.setText( "first name:" );
   container.add( firstNameJLabel );
   
   firstNameJTextField = new JTextField();
   firstNameJTextField.setBounds( 88, 16, 134, 21 );
   firstNameJTextField.setText( "john"  );    
   container.add( firstNameJTextField );
   
   lastNameJLabel = new JLabel();
   lastNameJLabel.setBounds( 24,16,64,32 );
   lastNameJLabel.setText( "last name" );
   container.add( lastNameJLabel );
   
   lastNameJTextField = new JTextField();
   lastNameJTextField.setBounds( 314, 16, 134, 21 );
   lastNameJTextField.setText( "doe" );
   container.add( lastNameJTextField );
   
   addressJLabel = new JLabel();
   addressJLabel.setText( "address" );
   //addressJLabel.setBounds( addressJLabel );
   addressJLabel.add( addressJLabel );
   
   addressJTextField = new JTextField();
   addressJTextField.setText( "123 main street" );
   container.add( addressJTextField );
   
   cityJLabel = new JLabel();
   cityJLabel.setBounds( 16, 96, 32, 21 );
   cityJLabel.setText( "city:" );
   container.add( cityJLabel );
   
   cityJTextField = new JTextField();
   cityJTextField.setBounds( 88, 96, 112, 21 );
   cityJTextField.setText( "some town" );
   container.add( cityJTextField );
   
   stateJLabel = new JLabel();
   stateJLabel.setBounds( 222, 96, 40, 21 );
   stateJLabel.setText( "state:" );
   container.add( stateJLabel );
   
   stateJTextField = new JTextField();
   stateJTextField.setBounds( 270, 96, 32, 21 );
   stateJTextField.setText( "MA" );
   container.add( stateJTextField );
   
   zipJLabel = new JLabel();
   zipJLabel.setBounds( 270,96,32,21 );
   zipJLabel.setText( "zip" );
   container.add( zipJLabel );
   
   zipJTextField = new JTextField();
   zipJTextField.setBounds( 360, 96, 88, 21 );
   zipJTextField.setText( "00000" );
   container.add( zipJTextField );
   
   emailJLabel = new JLabel();
   emailJLabel.setBounds( 360,96,88,21 );
   emailJLabel.setText("e-mail");
   container.add( emailJLabel );
   
   emailTextField = new JTextField();
   emailTextField.setBounds( 88, 136, 176, 21 );
   emailTextField.setText( "[email protected]" );
   container.add( emailTextField );
   
   phoneJLabel = new JLabel();
   phoneJLabel.setBounds( 280,136,40,21 );
   phoneJLabel.setText( "phone" );
   container.add( phoneJLabel );
   
   phoneJTextField = new JTextField();
   phoneJTextField.setBounds(336,136,112,21);
   phoneJTextField.setText( "781-555-4567" );
   container.add( phoneJTextField );
   
   mobileJLabel = new JLabel();
   mobileJLabel.setBounds( 16,176,50,21 );
   mobileJLabel.setText( "Mobile:" );
   container.add( mobileJLabel );
   
   mobileJTextField = new JTextField();
   mobileJTextField.setBounds( 88,176,176,21 );
   mobileJTextField.setText( "978-555-6541" );
   container.add( mobileJTextField );
   
   beeperJLabel = new JLabel();
   beeperJLabel.setBounds( 280,176,48,21 );
   beeperJLabel.setText( "beeper:" );
   container.add( beeperJLabel );
   
   beeperJTextField = new JTextField();
   beeperJTextField.setBounds( 336,176,112,21 );
   beeperJTextField.setText("508-555-7896");
   container.add( beeperJTextField );
   
   saveJButton = new JButton();
   saveJButton.setBounds( 284,216,75,23 );
   saveJButton.setText("save");
   container.add( saveJButton );
   
   clearJButton = new JButton();
   clearJButton.setBounds( 373,216,75,23 );
   clearJButton.setText( "clear" );
   container.add( clearJButton );
   
   setTitle( "address book" );
   setSize( 472,280 );
   setVisible( true );
  }
 public static void main( String[] args )  
  {
   addressbook application = new addressbook();
   application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
  }
   }

解决方案 »

  1.   

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class addressbook extends JFrame
    {
       private JLabel firstNameJLabel;
       private JTextField firstNameJTextField;
       
       private JLabel lastNameJLabel;
       private JTextField lastNameJTextField;
       
       private JLabel addressJLabel;
       private JTextField addressJTextField;
       
       private JLabel cityJLabel;
       private JTextField cityJTextField;
       
       private JLabel stateJLabel;
       private JTextField stateJTextField;
       
       private JLabel zipJLabel;
       private JTextField zipJTextField;
       
       private JLabel emailJLabel;
       private JTextField  emailTextField;
       
       private JLabel phoneJLabel;
       private JTextField phoneJTextField;
       
       private JLabel mobileJLabel;
       private JTextField mobileJTextField;
       
       private JLabel beeperJLabel;
       private JTextField beeperJTextField;
       
       private JButton saveJButton;
       private JButton clearJButton;  public addressbook()
      {
        createUserInterface(); 
      }
      
      public void createUserInterface()
      {
       Container container = getContentPane();
       container.setLayout( null );
       
       firstNameJLabel = new JLabel();
       firstNameJLabel.setBounds( 16,16,64,21 );
       firstNameJLabel.setText( "first name:" );
       container.add( firstNameJLabel );
       
       firstNameJTextField = new JTextField();
       firstNameJTextField.setBounds( 88, 16, 134, 21 );
       firstNameJTextField.setText( "john"  );    
       container.add( firstNameJTextField );
       
       lastNameJLabel = new JLabel();
       lastNameJLabel.setBounds( 24,16,64,32 );
       lastNameJLabel.setText( "last name" );
       container.add( lastNameJLabel );
       
       lastNameJTextField = new JTextField();
       lastNameJTextField.setBounds( 314, 16, 134, 21 );
       lastNameJTextField.setText( "doe" );
       container.add( lastNameJTextField );
       
       addressJLabel = new JLabel();
       addressJLabel.setText( "address" );
       //addressJLabel.setBounds( addressJLabel );
       container.add( addressJLabel );   // 更改
       
       addressJTextField = new JTextField();
       addressJTextField.setText( "123 main street" );
       container.add( addressJTextField );
       
       cityJLabel = new JLabel();
       cityJLabel.setBounds( 16, 96, 32, 21 );
       cityJLabel.setText( "city:" );
       container.add( cityJLabel );
       
       cityJTextField = new JTextField();
       cityJTextField.setBounds( 88, 96, 112, 21 );
       cityJTextField.setText( "some town" );
       container.add( cityJTextField );
       
       stateJLabel = new JLabel();
       stateJLabel.setBounds( 222, 96, 40, 21 );
       stateJLabel.setText( "state:" );
       container.add( stateJLabel );
       
       stateJTextField = new JTextField();
       stateJTextField.setBounds( 270, 96, 32, 21 );
       stateJTextField.setText( "MA" );
       container.add( stateJTextField );
       
       zipJLabel = new JLabel();
       zipJLabel.setBounds( 270,96,32,21 );
       zipJLabel.setText( "zip" );
       container.add( zipJLabel );
       
       zipJTextField = new JTextField();
       zipJTextField.setBounds( 360, 96, 88, 21 );
       zipJTextField.setText( "00000" );
       container.add( zipJTextField );
       
       emailJLabel = new JLabel();
       emailJLabel.setBounds( 360,96,88,21 );
       emailJLabel.setText("e-mail");
       container.add( emailJLabel );
       
       emailTextField = new JTextField();
       emailTextField.setBounds( 88, 136, 176, 21 );
       emailTextField.setText( "[email protected]" );
       container.add( emailTextField );
       
       phoneJLabel = new JLabel();
       phoneJLabel.setBounds( 280,136,40,21 );
       phoneJLabel.setText( "phone" );
       container.add( phoneJLabel );
       
       phoneJTextField = new JTextField();
       phoneJTextField.setBounds(336,136,112,21);
       phoneJTextField.setText( "781-555-4567" );
       container.add( phoneJTextField );
       
       mobileJLabel = new JLabel();
       mobileJLabel.setBounds( 16,176,50,21 );
       mobileJLabel.setText( "Mobile:" );
       container.add( mobileJLabel );
       
       mobileJTextField = new JTextField();
       mobileJTextField.setBounds( 88,176,176,21 );
       mobileJTextField.setText( "978-555-6541" );
       container.add( mobileJTextField );
       
       beeperJLabel = new JLabel();
       beeperJLabel.setBounds( 280,176,48,21 );
       beeperJLabel.setText( "beeper:" );
       container.add( beeperJLabel );
       
       beeperJTextField = new JTextField();
       beeperJTextField.setBounds( 336,176,112,21 );
       beeperJTextField.setText("508-555-7896");
       container.add( beeperJTextField );
       
       saveJButton = new JButton();
       saveJButton.setBounds( 284,216,75,23 );
       saveJButton.setText("save");
       container.add( saveJButton );
       
       clearJButton = new JButton();
       clearJButton.setBounds( 373,216,75,23 );
       clearJButton.setText( "clear" );
       container.add( clearJButton );
       
       setTitle( "address book" );
       setSize( 472,280 );
       setVisible( true );
      }
     public static void main( String[] args )  
      {
       addressbook application = new addressbook();
       application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
      }
       }
      

  2.   

    addressJLabel = new JLabel();
       addressJLabel.setText( "address" );
       //addressJLabel.setBounds( addressJLabel );
       // addressJLabel.add( addressJLabel );  这里引用自己的组件!
       更改为:container.add( addressJLabel );  
      

  3.   

    对啊,自己加自己,当然错了。
       // addressJLabel.add( addressJLabel );
      

  4.   

    谢谢兄弟,还有一点不懂,为什么
    我一输入container它就自动变成大写的了Container
    //Container.add( addressJLabel );
      container.add( addressJLabel );