package untitled1;import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.jbcl.layout.*;/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2002</p>
 * <p>Company: </p>
 * @author unascribed
 * @version 1.0
 */public class Frame1 extends JFrame {
  private JPanel contentPane;
  private JButton jButton1 = new JButton();
  private XYLayout xYLayout1 = new XYLayout();
  private JTextField jTextField1 = new JTextField();
  private JButton jButton2 = new JButton();
  private JButton jButton3 = new JButton();
  private JButton jButton4 = new JButton();  //Construct the frame
  public Frame1() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  //Component initialization
  private void jbInit() throws Exception  {
    //setIconImage(Toolkit.getDefaultToolkit().createImage(Frame1.class.getResource("[Your Icon]")));
    contentPane = (JPanel) this.getContentPane();
    jButton1.setText("jButton1");
    contentPane.setLayout(xYLayout1);
    this.setSize(new Dimension(400, 300));
    this.setTitle("Frame Title");
    jTextField1.setText("jTextField1");
    jButton2.setText("jButton2");
    jButton3.setText("jButton3");
    jButton4.setText("jButton4");
    contentPane.add(jButton1, new XYConstraints(154, 199, -1, -1));
    contentPane.add(jTextField1,  new XYConstraints(114, 35, 125, 28));
    contentPane.add(jButton2,  new XYConstraints(65, 131, 93, 33));
    contentPane.add(jButton3,  new XYConstraints(260, 110, 87, 25));
    contentPane.add(jButton4,  new XYConstraints(53, 212, 61, 39));
  }
  //Overridden so we can exit when window is closed
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
  }
}
package untitled1;import javax.swing.UIManager;
import java.awt.*;/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2002</p>
 * <p>Company: </p>
 * @author unascribed
 * @version 1.0
 */public class Application1 {
  private boolean packFrame = false;  //Construct the application
  public Application1() {
    Frame1 frame = new Frame1();
    //Validate frames that have preset sizes
    //Pack frames that have useful preferred size info, e.g. from their layout
    if (packFrame) {
      frame.pack();
    }
    else {
      frame.validate();
    }
    //Center the window
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    Dimension frameSize = frame.getSize();
    if (frameSize.height > screenSize.height) {
      frameSize.height = screenSize.height;
    }
    if (frameSize.width > screenSize.width) {
      frameSize.width = screenSize.width;
    }
    frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
    frame.setVisible(true);
  }
  //Main method
  public static void main(String[] args) {
    try {
      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    }
    catch(Exception e) {
      e.printStackTrace();
    }
    new Application1();
  }
}

解决方案 »

  1.   

    这是因为RootPane的DefaultButton在作怪,呵呵
    你可以用JButton.setDefaultCapable(false)来屏蔽。
    最后在调用getRootPane().setDefaultButton(null);
      

  2.   

    我发现屏蔽掉UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());这句话可以管用
    to farawayzheng_necas(遥远) :我试试看:)
      

  3.   

    to farawayzheng_necas(遥远) :管用,不过我有很多button,一个个的写岂不太麻烦了??能讲一下原因吗??
      

  4.   

    没办法,只能一个一个写。
    DefaultButton是为了方便用户的(不是为了方便程序员)
    用户如果在对话框上按回车,就有一个按钮响应,而不是用鼠标点,很方便。
      

  5.   

    屏蔽掉UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());这句话可以管用
      

  6.   

    微软是不是能强制不允许application运行在windows平台上?