pessoal estou fazendo um codigo onde quando eu clico nos botões o layout do JPanel muda de tamanho. O codigo vai abaixo:
// demonstrando gridLayout
import java.awt.GridLayout;
import java.awt.Container;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
import javax.swing.JButton;
public class GridLayoutFrame extends JFrame implements ActionListener
{
private JButton buttons[]; // array de botões
private final String names[] = {"one", "two", "tree", "four", "five", "six"};
private boolean toggle = true; // alterna entre dois layouts
private Container container; // container do frame
private GridLayout gridLayout1; // primeiro gridLayout. O gridLayout dispõe os compoentes
// na forma de tabela
private GridLayout gridLayout2; // segundo gridLayout
// construtor sem argumento
public GridLayoutFrame()
{
super("GridLayout Demo");
gridLayout1 = new GridLayout(2, 3, 5, 5); // 2 por 3; lacunas de 5
gridLayout2 = new GridLayout(3, 2); // 3 por 2; nenhuma lacuna
container = getContentPane(); // obtém painel de conteúdo
setLayout(gridLayout1); // configura o layout JFrame
buttons = new JButton[names.length]; // cria array de JButtons
for(int count = 0; count < names.length; count++)
{
buttons[count] = new JButton(names[count]);
buttons[count].addActionListener(this); // registra o ouvinte
add(buttons[count]); // adiciona os botões
}
}
// trata eventos de botão alternando entre layouts
public void actionPerformed(ActionEvent event)
{
if (toggle)
{
container.setLayout(gridLayout2);
super.getContentPane().setSize(900, 200); // muda o tamanho do panel
}
else
{
container.setLayout(gridLayout1);
super.getContentPane().setSize(300, 200);
}
toggle = !toggle; // alterna para valor oposto
container.validate(); // refaz o layout do container
}
}
o problema é que o frame não acompanha o tamanho dos componentes depois eu mudar o tamanho de JPanel. Alguém sabe como eu posso fazer com que o frame junto com os componentes seja coerentes em tamanho?? se alguém souber, manda o codigo que vai ser util pra mim…
