PDA

Visualizza la versione completa : [JAVA] GridBagConstraints


dokk
22-07-2003, 21:51
Ciao a tutti! :adhone:
Come da oggetto, qualche anima pia mi darebbe una dritta su ste benedette GridBagConstraints?



public MyFrame(String title)
{
super(title);
mainPanel = new JPanel(new GridBagLayout());
menuBar = new JMenuBar();
Close = new JMenu("Close");
menu2 = new JMenu("menu2");
close = new JMenuItem("Close");
close.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(-1);
}
});
Close.add(close);
menuBar.setBackground(Color.blue);
menuBar.add(
Close,
new GridBagConstraints(
0,0,2,1,
1.0,0.0,
GridBagConstraints.WEST,GridBagConstraints.NONE,
new Insets(0,0,0,0),
5,0));
menuBar.add(
menu2,
new GridBagConstraints(
1,0,2,1,
1.0,0.0,
GridBagConstraints.WEST,GridBagConstraints.NONE,
new Insets(0,0,0,0),
5,0));

inputPanel = new JPanel(new GridBagLayout());
address = new JTextField();
address.setSize(40,5);
ok = new JButton("OK");
//ok.setSize(10,5);
ok.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
doConnection();
}
});
inputPanel.add(
address,
new GridBagConstraints(
0,0,3,1,
0.0,0.0,
GridBagConstraints.WEST,GridBagConstraints.NONE,
new Insets(0,0,0,0),
0,0));
inputPanel.add(
ok,
new GridBagConstraints(
1,0,1,1,
0.0,0.0,
GridBagConstraints.EAST,GridBagConstraints.NONE,
new Insets(0,0,0,0),
0,0));

outputPanel = new JPanel();
output = new JLabel();
outputPanel.add(output);

mainPanel.add(menuBar,
new GridBagConstraints(
0,0,4,1,
0.0,2.0,
GridBagConstraints.NORTHWEST,GridBagConstraints.NO NE,
new Insets(0,0,0,0),
200,0));
mainPanel.add(inputPanel,
new GridBagConstraints(
0,1,4,2,
0.0,1.0,
GridBagConstraints.CENTER,GridBagConstraints.NONE,
new Insets(0,0,0,0),
0,0));
mainPanel.add(outputPanel,
new GridBagConstraints(
0,2,4,1,
0.0,1.0,
GridBagConstraints.SOUTH,GridBagConstraints.NONE,
new Insets(0,0,0,0),
0,0));
this.getContentPane().add(mainPanel);
this.setSize(400,200);
this.setLocation((int)(Toolkit.getDefaultToolkit() .getScreenSize().getHeight()/2),
(int)(Toolkit.getDefaultToolkit().getScreenSize(). getWidth()/2));
this.show();
}


Quello che non capisco come organizzare i vari elementi, perch durante le mie prove non sono riuscito a posizionarli dove e come vorrei io. Ad esempio eseguendo il codice postato:
1) la menuBar non posizionata a sx, sebbene abbia impostato la GridBagConstraints.NORTHWEST;
2) non riesco a dare pi spazio tra gli stessi elementi della menuBar;
3) non riesco a posizionare il JPanel di mezzo (inputPanel) al centro (verticalmente);
4) non riesco ad allargare il JTextField in modo da fargli occupare pi spazio in orizzontale.

Insomma, le dimensioni e le proporzioni, come si settano praticamente?

Mi sembra che sia il modo pi flessibile per gestire i layout, ma anche molto complesso. Anche esempi, tutorial, etc... sono ben accetti (oltre eventuali consigli sui punti sopra :tongue: )!
Grazie mille a tutti! :ciauz:

dokk
23-07-2003, 10:47
Non ci credo! Nessuno?!? :eek:

dokk
23-07-2003, 12:31
Originariamente inviato da dokk
Non ci credo! Nessuno?!? :eek:
Ehi Floyd! Ti ho visto! :adhone: ;)

floyd
23-07-2003, 12:51
mi hanno chiesto di fare uno script digital :nonlodire
appena ho finito lo guardo :confused:

dokk
23-07-2003, 13:12
Originariamente inviato da floyd
mi hanno chiesto di fare uno script digital :nonlodire
appena ho finito lo guardo :confused:
Grande! :metallica Aspetto allora... ma cos' uno script digital?!? :master:
U pure gli altri... piano con la coda eh! :gren:

floyd
23-07-2003, 14:10
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.BOTH;
c.weightx = 1.0;
c.gridheight = 1;
c.gridwidth = 1;
Button button = new Button(name);
gridbag.setConstraints(button, c);
add(button);
c.gridheight = 2
c.gridwidth = 2
JPanel panel = new JPanel();
gridbag.setConstraints(panel, c);
add(panel);
usalo in questo modo
ho scritto un codice che immagino faccia un casino ma ti da' l'idea

dokk
23-07-2003, 14:41
Originariamente inviato da floyd
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.BOTH;
c.weightx = 1.0;
c.gridheight = 1;
c.gridwidth = 1;
Button button = new Button(name);
gridbag.setConstraints(button, c);
add(button);
c.gridheight = 2
c.gridwidth = 2
JPanel panel = new JPanel();
gridbag.setConstraints(panel, c);
add(panel);
usalo in questo modo
ho scritto un codice che immagino faccia un casino ma ti da' l'idea
Grazie mille! appena arrivo a casa lo provo! :)
P.S.: hai qualche link con tutorials ed esempi sull'utilizzo di Swing e in particolare GridBagLayout? Oppure un libro... (se gratis meglio) ;)

floyd
23-07-2003, 15:58
trovi qualche esempio nel javadoc

dokk
23-07-2003, 17:30
Originariamente inviato da floyd
trovi qualche esempio nel javadoc
mmm... un p misero per il javadoc... grazie mille comunque Floyd! :ciauz:

Loading