1
我试图做一个基本的登录菜单下面这个模仿了起来:我不知道该摆的布局,以及如何使用它来获取我想要的模型
我决定把这个整个菜单进入一个JPanel,所以一旦连接成功,我可以切换到另一个面板。
因此,我决定使用Borderlayout在北部地区拥有标题,在南部地区拥有连接按钮。
我做了borderlayout面板的中心本身。我决定将它作为一个网格布局,以便拥有标签(登录名,密码)以及用户放置其标识的文本字段。
结果是非常丑陋,从很远的我的预期:
这是菜单的代码:
public class EcranAccueil extends JPanel {
private JLabel labelTitre;
private JPanel PanelConnexion;
private JButton boutonConnexion;
private JLabel labelLogin;
private JLabel labelMotDepasse;
private JTextField loginUser;
private JTextField MotDepasseUser;
EcranAccueil(EcranGestion EcranPrincipale){
PanelConnexion = new JPanel();
this.setLayout(new BorderLayout());
PanelConnexion.setLayout(new GridLayout(2,2));
loginUser = new JTextField("User");
loginUser.setMinimumSize(new Dimension(20,20));
loginUser.setMaximumSize(new Dimension(20,20));
MotDepasseUser = new JTextField("Password");
boutonConnexion = new JButton("Connect");
boutonConnexion.setMinimumSize(new Dimension(200,200));
boutonConnexion.setMaximumSize(new Dimension(200,200));
labelTitre= new JLabel("ApplicationName");
labelLogin= new JLabel("Login");
labelMotDepasse = new JLabel("Password");
PanelConnexion.add(labelLogin);
PanelConnexion.add(loginUser);
PanelConnexion.add(labelMotDepasse);
PanelConnexion.add(MotDepasseUser);
this.add(labelTitre, BorderLayout.NORTH);
this.add(PanelConnexion, BorderLayout.CENTER);
this.add(boutonConnexion, BorderLayout.SOUTH);
} }
我试图用一个gridboxlayout但我完全没有使用它,它没有编译。有没有人有建议或建议?
如果您的代码不起作用,请考虑为其设置[mcve]。 – GhostCat
请参阅此答案以了解如何处理布局设计:https://stackoverflow.com/a/47121349/3992939 – c0der
'我尝试使用gridboxlayout' - 没有这种布局。使用适当的类名,让人们知道你在说什么。阅读[布局管理器]上的Swing教程(https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html)以获取工作示例以帮助您入门。如果需要实现布局,也可以嵌套具有不同布局管理器的面板。 – camickr