首先把相關容器的布局方式設為 setLayout(null);
然后調用組件的 setBounds() 方法
設置button的位置為(100,100) 長寬分別為 60,25
jButton.setBounds(new Rectangle(100, 100, 60, 25));
import java.awt.Container; import java.awt.Dimension; import java.awt.Rectangle; import java.awt.Toolkit; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JPasswordField; import javax.swing.JTextField; public class Log extends JFrame { public static void main(String[] args) { Log log = new Log(); } private JButton btLog; private JTextField tfUser; private JPasswordField tfPwd; private JCheckBox pwdKeep; private JComboBox adminType; public Log() { super("固定資產管理系統"); super.setSize(380, 292); super.setVisible(true); super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); centered(this); btLog = new JButton("登 錄"); btLog.setBounds(new Rectangle(93, 220, 180, 30));//參數分別是坐標x,y,寬,高 this.setLayout(null);//設置布局管理器為空 this.add(btLog); tfUser = new JTextField(); tfUser.setBounds(new Rectangle(73, 115, 220, 25)); this.add(tfUser); tfPwd = new JPasswordField(); tfPwd.setBounds(new Rectangle(73, 150, 220, 25)); this.add(tfPwd); pwdKeep = new JCheckBox("記住密碼"); pwdKeep.setBounds(new Rectangle(68, 185, 110, 25)); this.add(pwdKeep); adminType = new JComboBox(new String[] { "普通職員", "管理員", "高級管理員" }); adminType.setBounds(new Rectangle(183, 185, 100, 25)); this.add(adminType); } //布局居中方法 public void centered(Container container) { Toolkit toolkit = Toolkit.getDefaultToolkit(); Dimension screenSize = toolkit.getScreenSize(); int w = container.getWidth(); int h = container.getHeight(); container.setBounds((screenSize.width - w) / 2, (screenSize.height - h) / 2, w, h); } }