Sou nova na interface gráfica e tenho que fazer um tabuleiro… mas quando add os botões com o GridBagLayout eles não ficam exatamente na posição que eu quero (que seria no estilo de uma matriz, pois tenho que faezr um jogo de resta-um)
[code]package Limite;
import java.awt.Component;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Container;
import java.awt.Insets;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.*;
public class Tabuleiro extends JFrame implements ActionListener {
private JButton[][] pinos;
private GridBagConstraints constraints; // constraints of this layout
private GridBagLayout layout;
//Container c = this.getContentPane();
public Tabuleiro(){
super( "Resta um" );
setLayout( new FlowLayout() );
Icon pino = new ImageIcon( getClass().getResource( "pino.jpg" ) );
Icon sempino = new ImageIcon( getClass().getResource( "sempino.jpg" ) );
pinos = new JButton[9][9];
layout = new GridBagLayout();
setLayout(layout);
constraints = new GridBagConstraints();
//constraints.fill = GridBagConstraints.BOTH;
//constraints.insets = new Insets(0, 0, 9, 9);
for(int i=0; i<9;i++ )
for(int j=0; j<9;j++){
pinos[i][j]=new JButton(pino);
addComponent(pinos[i][j], i, j, 1, 1);
//add(pinos[i][j]);
}
for(int k = 0; k<9; k++)
for(int l = 0; l<9; l++)
if((k<3 && l<3) || (k<3 && l>5) || (k>5 && l<3) || (k>5 && l>5)){
pinos[k][l].setVisible(false);
addComponent(pinos[k][l], k, l, 1, 1);
//add(pinos[k][l]);
}
pinos[4][4].setIcon(sempino);
for(int o=0; o<9; o++)
for(int p=0; p<9; p++){
addComponent(pinos[o][p], o, p, 1, 1);
}
}
public void actionPerformed( ActionEvent event )
{
}
private void addComponent( Component component,int row, int column, int width, int height )
{
constraints.gridx = column;
constraints.gridy = row;
constraints.gridwidth = width;
constraints.gridheight = height;
layout.setConstraints( component, constraints );
add( component );
}
private class GerenciadorGeral implements ActionListener {
public void actionPerformed(ActionEvent evento) {
/*if (evento.getSource() == btnCancelar)
System.exit(0);*/
}
}
}
[/code]
Alguém pode me ajudar?
Valeu