Ich baue eine einfache GUI für eine Kurszuweisung, aber ich bekomme nicht das Beste daraus.Passen Sie Layout für 3 Spalten von gemeinsamen Komponenten mit anderen Komponenten über/unter
Und ich diese bekommen (es einiger Elemente wie die Schaltfläche fehlt):
Also die Sache ist, wie kann ich Code mein Layout, enger zu sein wie im Zielbild?
-Code unten:
public class Panel1 extends JPanel{
private JButton cancel = new JButton("Cancel");
private JTextArea xTwin = new JTextArea(10, 30);
private JTextArea xCousin = new JTextArea(10, 30);
private JTextArea xSexy = new JTextArea(10, 30);
private JTextField getT = new JTextField(5);
private JTextField getC= new JTextField(5);
private JTextField getS = new JTextField(5);
private JLabel cnstT = new JLabel("How many twin primes do you want?");
private JLabel cnstC = new JLabel("How many cousin primes do you want?");
private JLabel cnstS = new JLabel("How many sexy primes do you want?");
private JLabel msgTwin = new JLabel("Area primes 'twin' created");
private JLabel msgCousin = new JLabel("Area primes 'cousin' created");
private JLabel msgSexy = new JLabel("Area primes 'sexy' created");
private JLabel msgGUI = new JLabel("GUI created");
public Panel1(){
xTwin.setEditable(false);
xCousin.setEditable(false);
xSexy.setEditable(false);
this.setLayout(new GridLayout(3, 1));
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
JPanel p3 = new JPanel();
p1.setLayout(new FlowLayout());
p2.setLayout(new FlowLayout());
p3.setLayout(new FlowLayout());
p1.add(cnstT); p1.add(getT); p1.add(cnstC); p1.add(getC);
p1.add(cnstS); p1.add(getS);
p2.add(xTwin); p2.add(xCousin); p2.add(xSexy);
p3.add(msgTwin); p3.add(msgCousin); p3.add(msgSexy);
add(p1); add(p2); add(p3);
}
Für die drei Platten in der Mitte Sie eine Factory-Methode erstellen könnte, die eine 'String' (die Art der randoms) und möglicherweise auch andere Dinge, wie ein' SpinnerNumberModel' akzeptiert - und liefert ein Panel. Setzen Sie diese drei Felder in eine einzelne Zeile "GridLayout". Setzen Sie dieses Panel in die Mitte eines 'BorderLayout'. Fügen Sie ein Panel zum 'PAGE_START' mit einem' FlowLayout' für den Button hinzu. Fügen Sie ein 'JLabel' zu' PAGE_END' für die 'GUI erstellt'-Nachricht hinzu. Wenn Sie weitere Hilfe benötigen, veröffentlichen Sie ein [MCVE] oder [Short, Self Contained, Correct Example] (http://www.sscce.org/) für Ihren besten Versuch, diesen Ansatz zu implementieren. –
@AndrewThompson ist korrekt; Das [Beispiel] (http://stackoverflow.com/a/37885601/230513) unten kombiniert die Fabrik- und Strategie-Muster. – trashgod