【发布时间】:2015-08-29 11:49:28
【问题描述】:
如何在 JFrame 中心的 JPanel 上对齐我的组件。
这是我的代码以及我得到了什么
我想要这样
(来源:hizliresim.com)
主框架
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MainFrame extends JFrame {
private static MainFrame instance = new MainFrame();
public static MainFrame getInstance() {
return instance;
}
public static void switchToPanel(JPanel p) {
getInstance().setContentPane(p);
getInstance().validate();
}
private MainFrame() {
setTitle("FavMovies");
setSize(400, 400);
setLocationRelativeTo(null);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
MainFrame.switchToPanel(new LoginPanel());
}
}
登录面板
import javax.swing.*;
import net.miginfocom.swing.MigLayout;
public class LoginPanel extends JPanel {
// PROPERTIES
private JTextField inputUsername;
private JPasswordField inputPassword;
// CONSTRUCTOR
public LoginPanel() {
setSize(400,400);
// COMPONENTS
inputUsername = new JTextField(10);
inputPassword = new JPasswordField(10);
JButton loginButton = new JButton("Login");
JButton createButton = new JButton( "Create User");
setLayout(new MigLayout());
// first row
add(new JLabel( "Username: "));
add(inputUsername, "wrap 5");
// second row
add(new JLabel( "Password: "));
add(inputPassword, "wrap 10");
// final row
add(loginButton);
add(createButton);
}
}
我希望我能解释 :( 我希望我能解释 :( 我希望我能解释 :( 我希望我能解释 :(
【问题讨论】: