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