quando crio um JPanel com o layout de GridLayout, defino o numeros de linhas e colunas: exemplo de 3x3
se quero adicionar um botao ou caixa de texto neste JPanel porem no centro seria na linha 2 coluna 2, contando da esquerda para direita e de cima pra baixo é a 5ª posicao.
estou tentando fazer este exemplo mas nao consigo, da erro e a excecao de ILlegalArgumentException dizendo que a posicao do indice está incorreta, tentei varios numeros de indice diferente mas nao funciona, e no metodo: JPanel.add(Component comp, int index). no caso do index da esse erro.
alguem saberia como centralizar o componente ou definir em qual posicao do Grid vai ficar?
JFrame janela = new JFrame();
JPanel painelPrinc = new JPanel();
JPanel painelSpr = new JPanel();
JTextField txt = new JTextField(5);
public Painel(){
janela.setTitle("Painel");
janela.setSize(300,300);
janela.setLocation(500,250);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
painelPrinc.setLayout(new BorderLayout());
painelPrinc.add("North", painelSpr);
painelPrinc.add("West", (outroPainel));
painelPrinc.add("Center", (outroPainel));
painelPrinc.add("East", (outroPainel));
painelPrinc.add("South", (outroPainel));
painelSpr.setLayout(new GridLayout(3, 3, 5, 5));
painelSpr.add(txt, 5);
janela.setVisible(true);
}
public static void main(String[] args) {
new Painel();
}
}[/code]
aí neste caso o painel superior que chamei de painelSpr ele tem 9 posicoes, pq esta como 3x3 no Grid, mas quando executo da erro e aparece a excecao de que o indice da posicao esta incorreto e se alterar a linha
para
ele ira funcionar normalmente porem o txt aparece no topo da janela queria centralizar o txt no North do Border.
dividi o North do Border num Grid de 3x3 e queria centralizar o Component neste Grid…
Você vai adicionando na sequência, ou seja, da esquerda para direita e de cima para baixo, vai adicionando os componentes e quando for na posição 2x2, ou seja o 5º componente, vc adiciona o painel.
GridLayout não tem suporte a constraints. Este índice que está passando junto com o componente “txt” está dizendo para o container que este deve ser o quinto componente, como há menos de 5 componentes no container, a exceção é lançada.