Thread View: be.comp.programming
4 messages
4 total messages
Started by Simonne De Ryck
Thu, 22 Apr 2004 17:31
[Java] GridBagLayout.
Author: Simonne De Ryck
Date: Thu, 22 Apr 2004 17:31
Date: Thu, 22 Apr 2004 17:31
93 lines
3999 bytes
3999 bytes
Hallo,
Ik heb problemen met het de layout van mijn scherm.
Mijn bedoeling is om bovenaan op het scherm een tabel te maken en onderaan
een knop om het scherm te verlaten.
Het probleem is het volgende: als je de code die hieronder staat uitvoert
zul je merken dat mij dat al redelijk goed gelukt is. Nu als ik dit scherm
verklein of vergroot is de bedoeling dat de tabel mee vergroot of verkleint
en dit gebeurt niet zoals het hoort.
Ik hoop dat hier iemand is die mij kan helpen met dit probleem.
Alvast bedankt & groetjes
Els
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SearchClient extends JFrame implements ActionListener {
public JTable aTable;
public JScrollPane aScrollPane;
public static String [][] tableData = {{"Lijn1", "Lijn1", "Lijn1"},
{"Lijn2", "Lijn2",
"Lijn2"},
{"Lijn3", "Lijn3",
"Lijn3"}};
public static String[] columnHeadings = {"Naam", "Adres", "Gemeente"};
private JButton Exit;
private JLabel Label1, Label2;
public SearchClient() {
// ----- Opbouw scherm -----
Dimension scrSize= Toolkit.getDefaultToolkit().getScreenSize();
this.setTitle("Zoeken");
this.setSize(500, 200);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocation((scrSize.width - 500)/2, (scrSize.height - 200)/2);
this.isResizable();
aTable = new JTable(tableData, columnHeadings);
aScrollPane = new JScrollPane(aTable);
Exit = new JButton();
Exit.setText("Verlaten");
Exit.addActionListener(this);
Label1 = new JLabel();
Label1.setText(" ");
Label2 = new JLabel();
Label2.setText(" ");
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
getContentPane().setLayout(gridbag);
c.gridwidth = GridBagConstraints.REMAINDER;
c.weightx = 0.0;
c.gridheight = 1;
gridbag.setConstraints(Label1, c);
getContentPane().add(Label1);
c.gridwidth = GridBagConstraints.REMAINDER;
c.weightx = 0.0;
c.gridheight = 0;
gridbag.setConstraints(aTable, c);
getContentPane().add(aScrollPane);
c.gridwidth = GridBagConstraints.REMAINDER;
c.weightx = 0.0;
c.gridheight = 1;
gridbag.setConstraints(Label2, c);
getContentPane().add(Label2);
c.gridwidth = GridBagConstraints.WEST;
c.weightx = 1.0;
gridbag.setConstraints(Exit, c);
getContentPane().add(Exit);
pack();
setVisible(true);
}
public static void main(String[] args){
new SearchClient();
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == Exit){
System.exit(0);
}
}
}
Re: [Java] GridBagLayout.
Author: Stijn De Smet
Date: Fri, 23 Apr 2004 08:43
Date: Fri, 23 Apr 2004 08:43
28 lines
2065 bytes
2065 bytes
Simonne De Ryck wrote: > Hallo, > > Ik heb problemen met het de layout van mijn scherm. > Mijn bedoeling is om bovenaan op het scherm een tabel te maken en onderaan > een knop om het scherm te verlaten. > Het probleem is het volgende: als je de code die hieronder staat uitvoert > zul je merken dat mij dat al redelijk goed gelukt is. Nu als ik dit > scherm verklein of vergroot is de bedoeling dat de tabel mee vergroot of > verkleint en dit gebeurt niet zoals het hoort. > > Ik hoop dat hier iemand is die mij kan helpen met dit probleem. > Bij GridBagLayout moet je ook nog fill en weighty instellen. Je stelt ook de gridbagconstraints in op je aTable, maar voegt aScrollPane toe aan je contentpane. Dan moet je de constraints ook op die ScrollPane zetten. Misschien dat het zo beter werkt: c.gridwidth�=�GridBagConstraints.REMAINDER; c.weightx�=�0.0; c.weighty=1.0 c.fill = GridBagConstraints.BOTH; c.gridheight�=�0; gridbag.setConstraints(aScrollPane,�c); getContentPane().add(aScrollPane); -- Stijn De Smet
Re: [Java] GridBagLayout.
Author: Simonne De Ryck
Date: Fri, 23 Apr 2004 09:15
Date: Fri, 23 Apr 2004 09:15
27 lines
1868 bytes
1868 bytes
"Stijn De Smet" <stijn.desmet@nospammer.pandora.be> schreef in bericht news:c6aivd$nos$1@gaudi2.UGent.be... > Bij GridBagLayout moet je ook nog fill en weighty instellen. > Je stelt ook de gridbagconstraints in op je aTable, maar voegt aScrollPane > toe aan je contentpane. Dan moet je de constraints ook op die ScrollPane > zetten. > Misschien dat het zo beter werkt: > c.gridwidth = GridBagConstraints.REMAINDER; > c.weightx = 0.0; > c.weighty=1.0 > c.fill = GridBagConstraints.BOTH; > c.gridheight = 0; > gridbag.setConstraints(aScrollPane, c); > getContentPane().add(aScrollPane); > -- > Stijn De Smet Ik heb het geprobeerd met de code die je in je voorbeeld hebt geplaatst. Dit werkt als ik alleen maar de tabel op mijn scherm zet. Vanaf het moment dat ik er een label of knop toevoeg loopt dit mis. Werkt dit enkel als je een tabel alleen hebt. Groetje Els
Re: [Java] GridBagLayout.
Author: Stijn De Smet
Date: Fri, 23 Apr 2004 15:50
Date: Fri, 23 Apr 2004 15:50
38 lines
2542 bytes
2542 bytes
Simonne De Ryck wrote: > > "Stijn De Smet" <stijn.desmet@nospammer.pandora.be> schreef in bericht > news:c6aivd$nos$1@gaudi2.UGent.be... > > >> Bij GridBagLayout moet je ook nog fill en weighty instellen. >> Je stelt ook de gridbagconstraints in op je aTable, maar voegt >> aScrollPane toe aan je contentpane. Dan moet je de constraints ook op die >> ScrollPane zetten. >> Misschien dat het zo beter werkt: >> c.gridwidth = GridBagConstraints.REMAINDER; >> c.weightx = 0.0; >> c.weighty=1.0 >> c.fill = GridBagConstraints.BOTH; >> c.gridheight = 0; >> gridbag.setConstraints(aScrollPane, c); >> getContentPane().add(aScrollPane); >> -- >> Stijn De Smet > > Ik heb het geprobeerd met de code die je in je voorbeeld hebt geplaatst. > Dit werkt als ik alleen maar de tabel op mijn scherm zet. Vanaf het > moment > dat ik er een label of knop toevoeg loopt dit mis. Werkt dit enkel als je > een tabel alleen hebt. > Er zijn nog een aantal andere parameters nodig bij gridbagconstraints. Je zet er best ook een .gridx en .gridy bij(die geven de positie aan in de gridbaglayout. Als die er niet staan dan gaat de grootste component meestal alles overlappen). Je moet ook de gridwidth en gridheight aanpassen als je het wat deftig wilt positioneren. Netbeans heeft een visuele GUI editor die oa de gridbaglayout ondersteunt. Die genereert ook leesbare code en je kan in de GUI-editor met alle gridbaglayout parameters testen. -- Stijn De Smet
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads