Java: lägga till JTextField, JButton, JLabel till en frame

Trädvy Permalänk
Medlem
Registrerad
Jul 2005

Java: lägga till JTextField, JButton, JLabel till en frame

Hejsan!

Antingen har jag suttit alldeles för länge idag med Java så att jag har blivit dummare,
nu får jag inte de enklaste sakerna att fungera, vad gör jag fel?

Jag vill skapa ett fönster, med ett JLabel text, brevid vill jag ha en JTextField, där användaren kan skriva in sitt namn. Nedanför vill jag ha en JButton knapp för OK

public void createNameWindow() { JFrame win = new JFrame("Creation of username"); win.setSize(600 , 300); // width, height win.setVisible(true); win.setDefaultCloseOperation(3); win.setLocationRelativeTo(null); win.setLayout(new FlowLayout() ); JLabel label1 = new JLabel("Create username: "); label1.setFont(new Font("Arial Black", Font.ITALIC, 16)); JTextField input = new JTextField(10); JButton okay = new JButton("OK"); win.add(label1); win.add(input); win.add(okay); }

också provat:

public void createNameWindow() { JFrame win = new JFrame("Creation of username"); win.setSize(600 , 300); // width, height win.setVisible(true); win.setDefaultCloseOperation(3); win.setLocationRelativeTo(null); win.setLayout(new BorderLayout() ); JLabel label1 = new JLabel("Create username: "); label1.setFont(new Font("Arial Black", Font.ITALIC, 16)); JPanel panel = new JPanel(); panel.setLayout(new BorderLayout() ); panel.add(label1, BorderLayout.WEST); JTextField input = new JTextField(10); panel.add(input, BorderLayout.EAST); JButton okay = new JButton("OK"); panel.add(okay, BorderLayout.SOUTH); win.add(panel); }

Jag får båda försöken ett fönster, helt tomt.
Är det någonting i Layout manager som jag inte begriper mig på?

tack!

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Sep 2008

Din kod är inte fel, men det handlar om ordningen du har lagt till din kod.

public void createNameWindow() { JFrame win = new JFrame("Creation of username"); win.setDefaultCloseOperation(3); win.setLocationRelativeTo(null); win.setLayout(new FlowLayout()); win.setVisible(true); JLabel label1 = new JLabel("Create username: "); label1.setFont(new Font("Arial Black", Font.ITALIC, 16)); JTextField input = new JTextField(10); JButton okay = new JButton("OK"); win.add(label1); win.add(input); win.add(okay); win.setSize(600, 300); // width, height }

Flyttar du win.setSize(600, 300); från början av metoden till slutet av metoden så löser sig problemet.

Trädvy Permalänk
Medlem
Registrerad
Jul 2005

Jisses jag visste väl att det var något litet skitfel! Tack ska du ha!