Ich habe einen Passwortgenerator in Java erstellt, der perfekt funktioniert. Meine Funktionalität funktioniert (nach vielen Tränen, Schweiß und Blut :)), aber das einzige Problem, das bleibt, ist das Layout meiner GUI.BorderLayout in Swing Java funktioniert nicht richtig
Mein Ansatz war die folgende:
- 1 Scheibe (Top/Nord) für den Titel
- 1 Scheibe in der Mitte für das Formular
- 1 Scheibe (unten/Süd) für die Tasten und Textfeld
Dies ist das Ergebnis
wie Sie sehen können, ist das nicht, wie ich es wollte. Aber wenn ich meinen Code anschaue, sollte er gut von oben nach unten platziert werden.
Wo ist es schiefgelaufen?
Mein Code:
Die Konstruktor (erstreckt sich von JFrame)
public PasswordGenerator(){
this.setContentPane(ContentPane());
this.setSize(500,270);
this.setResizable(true);
this.setVisible(true);
}
Die Scheiben:
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 ein Flowlayout verwendet standardmäßig, einen genaueren Blick auf Ihre ContentPane Methode – MadProgrammer
habe ich versucht, die Methode ContentPane.setLayout (neu Border()), aber es gibt eine noch verrückteres Aussehen der GUI. –
Haben Sie es vor oder nach dem Hinzufügen der Komponenten festgelegt? Sie müssen es einstellen, bevor Sie ihm irgendwelche Komponenten hinzufügen. – MadProgrammer