私は完全に動作するJavaでパスワードジェネレータを作成しました。私の機能は動作しています(涙と汗と血の沢山の後:))、残っている唯一の問題は私のGUIのレイアウトです。ボタンのタイトルフォーム Swing JavaのBorderLayoutが正しく動作しない
- 1ペイン(トップ/ノース):
私のアプローチは以下の通りでしたそして、TextField
これは
結果であり、これは私がそれを望んでいた方法ではないことがわかります。しかし、私のコードを見ると上から下にうまく配置しなければなりません。
どこが間違っていましたか?
マイコード:
コンストラクタ(JFrameのから延びている)
public PasswordGenerator(){
this.setContentPane(ContentPane());
this.setSize(500,270);
this.setResizable(true);
this.setVisible(true);
}
ペイン:
private JPanel ContentPane()
{
JPanel ContentPane = new JPanel();
ContentPane.add(getTopPane(), BorderLayout.NORTH);
ContentPane.add(getCenterPane(),BorderLayout.CENTER);
ContentPane.add(getSouthPane(),BorderLayout.EAST);
return ContentPane;
}
private JPanel getTopPane(){
JPanel TopPane = new JPanel();
JLabel intro = new JLabel("Password generator V1.0");
intro.setFont(new Font("TimesRoman",Font.BOLD,20));
TopPane.setLayout(new GridLayout(1,1));
TopPane.add(intro);
return TopPane;
}
private JPanel getCenterPane(){
JPanel CenterPane = new JPanel();
CenterPane.add(aantalChars);
CenterPane.setLayout(new GridLayout(6,3));
//8,2
hidden.setVisible(false);
hiddenL.setVisible(false);
CenterPane.add(aantalCharsLabel);
CenterPane.add(hidden);
CenterPane.add(hidden);
CenterPane.add(hiddenL);
CenterPane.add(lowerCase);
CenterPane.add(lowerCaseLabel);
CenterPane.add(upperCase);
CenterPane.add(upperCaseLabel);
CenterPane.add(numberCase);
CenterPane.add(numberCaseLabel);
CenterPane.add(symbolCase);
CenterPane.add(symbolCaseLabel);
return CenterPane;
}
JPanelのは、私は方法ContentPane.setLayout(新しいのBorderLayout())をしようとしたが、それが与えるあなたのCONTENTPANE方法 – MadProgrammer
を詳しく見てみ、デフォルトでFlowLayoutのを使用していますGUIの奇妙な外観。 –
コンポーネントを追加する前または後に設定しましたか?コンポーネントを追加する前に設定する必要があります – MadProgrammer