04. december 2004 - 13:17Der er
15 kommentarer og 1 løsning
placering i swing
Jeg har et problem med at swing ikke rigtigt viser de ting jeg vil have vist - Layoutet er bygget op som borderlayout med north, center, south og center delen er inddelt i north og south.
kortfattet kode:
hoveddelen: public Main(){ ... ReserveLayout r = new ReserveLayout(); Container content = frame.getContentPane(); JTabbedPane pane = new JTabbedPane(); pane.add("Reserve", r.center); ... }
JPanel center, bottom; JButton submitButton, resetButton;
ReserveLayout(){ Reserve r = new Reserve(); center = new JPanel(); bottom = new JPanel(); center.setLayout(new BorderLayout());
// sets up the SOUTH area submitButton = new JButton("Submit"); resetButton = new JButton("Reset"); bottom.add(submitButton); bottom.add(resetButton); bottom.setBorder(BorderFactory.createEtchedBorder());
// set the current element to center panel center.add(r, BorderLayout.NORTH); center.add(bottom, BorderLayout.SOUTH); } }
Reserve(){ panel = new JPanel(); nameLabel = new JLabel("Flightname"); nameField = new JTextField(); passengerLabel = new JLabel("Passengers"); passengerField = new JTextField();
Reserve(){ panel = new JPanel(); nameLabel = new JLabel("Flightname"); nameField = new JTextField(); passengerLabel = new JLabel("Passengers"); passengerField = new JTextField();
setLayout(null); // Sætter null-layout så du selv kan bestemme koordinater
Ja, hvis du sætter null-layout bliver du tvunget til at sætte koordinater på hver komponent. Men det har du jo også gjort i din doLayout() - som du dog aldrig kalder. Derfor bliver de ikke placeret nogle steder.
Så vidt jeg forstår skal doLayout bare overrides - så den eksekveres automatisk, men umiddelbart lyder setLayout(null), fint, men det medfører bare at der ikke bliver skrevet noget
Hmmm - ja, du har vist ret mht doLayout() (har dog aldrig selv brugt den på den måde) Prøv lige at kald den metode noget andet og kald den så i din contructor som jeg viste i mit eksempel. Så burde det virke.
det virker - men den har det nu bedst med getPref.. og get Mini.. Overriding er og bliver djævlens værk - udelukkende implementeret i sproget så java.sun.com for tusindevis at daglige hits :)
Korrekt - det er essensen, men det er netop også det der giver grå hår :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.