从JBuilder 里找了个例子,在原来的基础上又回了个JPanel,界面就变了呢?
这是我改后的代码,大家看看这是什么问题。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.Rectangle;public class Frame1 extends JFrame {  //UI and components
  JPanel contentPane;
  JPanel panel = new JPanel();
  JMenuBar menuBar1 = new JMenuBar();
  JMenu menuFile = new JMenu();
  JMenuItem menuFileExit = new JMenuItem();
  TitledBorder titledBorder1;
  JPasswordField jPasswordField1 = new JPasswordField(10);
  JTextField jTextField1 = new JTextField();
  JLabel jLabel1 = new JLabel();
  JLabel jLabel2 = new JLabel();
  JButton jButton1 = new JButton();
  JOptionPane jOptionPane1 = new JOptionPane(); /**
   * Construct the frame
   */
  public Frame1() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }  /**
   * Component initialization
   *
   * @throws Exception exception
   */
  private void jbInit() throws Exception  {    //initialized content pane
    contentPane = (JPanel) this.getContentPane();
    titledBorder1 = new TitledBorder("");
    contentPane.setLayout(new BorderLayout());
    this.setSize(new Dimension(350, 300));
    this.setTitle("Password Sample");    //initialized menu bar and menu items, as well as menu event listeners
    this.setJMenuBar(menuBar1);
    menuFile.setText("File");
    menuFileExit.setText("Exit");
    menuFileExit.addActionListener(new ActionListener()  {
    public void actionPerformed(ActionEvent e) {
        fileExit_actionPerformed(e);
      }
    });    //initialize password field - set echo character to '#' and length
    //of field to 10 columns. Add event listener
    jPasswordField1.setEchoChar('#');
    jPasswordField1.setColumns(10);
    jPasswordField1.setBounds(new Rectangle(107, 77, 109, 28));
    jPasswordField1.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jPasswordField1_actionPerformed(e);
      }
    });    //initialize text field for message
    jTextField1.setBackground(Color.red);
    jTextField1.setFont(new java.awt.Font("SansSerif", 1, 24));
    jTextField1.setBorder(BorderFactory.createRaisedBevelBorder());
    jTextField1.setCaretColor(Color.white);
    jTextField1.setEditable(false);
    jTextField1.setHorizontalAlignment(SwingConstants.CENTER);
    jTextField1.setBounds(new Rectangle(6, 145, 329, 101));    //initialize labels
    jLabel1.setText("Password is:");
    jLabel1.setBounds(new Rectangle(5, 33, 109, 29));
    jLabel2.setText("Enter password:");
    jLabel2.setBounds(new Rectangle(6, 76, 99, 28));    //initialize button and create event listener
    jButton1.setFont(new java.awt.Font("SansSerif", 0, 12));
    jButton1.setBorder(BorderFactory.createRaisedBevelBorder());
    jButton1.setText("Click for password");
    jButton1.setBounds(new Rectangle(106, 22, 142, 44));
    jButton1.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton1_actionPerformed(e);
      }
    }); //add components
    menuFile.add(menuFileExit);
    menuBar1.add(menuFile);
    panel.add(jTextField1, null);
    panel.add(jLabel1, null);
    panel.add(jLabel2, null);
    panel.add(jPasswordField1, null);
    panel.add(jButton1, null);
    contentPane.add(panel,BorderLayout.CENTER);
  }  /**
   * File | Exit action performed
   *
   * @param e ActionEvent
   */
  public void fileExit_actionPerformed(ActionEvent e) {
    System.exit(0);
  }  /**
   * Overridden so we can exit when window is closed
   *
   * @param e WindowEvent
   */
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      fileExit_actionPerformed(null);
    }
  }
  private boolean isPasswordCorrect(char[] input) {
    char[] correctPassword = { 'j', 'b', 'u', 'i', 'l', 'd', 'e', 'r' };
    if (input.length != correctPassword.length)
         return false;
    for (int i = 0;  i < input.length; i ++)
        if (input[i] != correctPassword[i])
          return false;
    return true;
    }
  void jPasswordField1_actionPerformed(ActionEvent e) {
    String correctPassword = new String("Good job!");
    String incorrectPassword = new String("Opps! Try again!");    JPasswordField input = (JPasswordField)e.getSource();
      char[] password = input.getPassword();
        if (isPasswordCorrect(password)) {
          jTextField1.setText(correctPassword);
          JOptionPane.showMessageDialog(jOptionPane1, "Success! You typed the right password.");
         }
         else {
          jTextField1.setText(incorrectPassword);
          JOptionPane.showMessageDialog(jOptionPane1, "Invalid password. Try again.",
                        "Error Message", JOptionPane.ERROR_MESSAGE);
         }
    }
  void jButton1_actionPerformed(ActionEvent e) {
      jButton1.setText("jbuilder");
  }
}