私の希望のモデルを取得するためにそれを使用するために:私はにこの全体のメニューを置くことにしました私はSwingのレイアウトを知らないとどのように私はこのモック次の基本的なログインメニューを作成しようとしています
JPanelので、接続が成功すると別のパネルに切り替えることができます。
私はBorderlayoutを使用して、北エリアのタイトルと南エリアの接続ボタンを使用することにしました。
境界線の中心をパネル自体にしました。私は両方のラベル(ログイン、パスワード)だけでなく、ユーザーが自分のIDを置くテキストフィールドを持ってgridlayoutにすることにしました。
結果は非常に醜いと非常に遠くに私が期待したものからである。ここでは
は、メニューのコードです:
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を使用しようとしました」 - そのようなレイアウトはありません。適切なクラス名を使用すると、人々はあなたが話していることを知ることができます。実際の例は、[Layout Manager](https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html)のSwingチュートリアルを参照してください。レイアウトを実現するために、必要に応じて異なるレイアウトマネージャを使用してパネルをネストすることもできます。 – camickr