Galera, to com dificuldades em ajustar os componentes da Gui,
Por exemplo, quando crio um JTextArea e um JLabel, ao maximinizar ou minimizar a tela, os componentes não se ajustam de acordo.
Tentei usar FlowLayout() e borderLayout(), mas sem sucesso.
Consegui usando o GridLayout(), mas se alguêm tiver outra dica =D
discorpio
Boa noite Fer.ferreira6
Existe também o GridBagLayout.
Com ele, voce pode colocar componentes através de linha e coluna, pode ocupar mais de uma linha ou coluna.
Eu fiz uma classe de diagramação com ele, e que tem resolvido muito a minha vida, eis a classe:
importjava.awt.GridBagConstraints;importjava.awt.GridBagLayout;importjava.awt.Insets;importjavax.swing.JPanel;publicclassContentLayoutextendsJPanel{// Definição do Layout e constraints do LayoutprivateGridBagLayoutlayout;privateGridBagConstraintsconstraints;publicfinalinthorizontal=GridBagConstraints.HORIZONTAL;publicfinalintboth=GridBagConstraints.BOTH;//Construtor do objeto (como o mesmo nome da classe)publicContentLayout(){layout=newGridBagLayout();setLayout(layout);constraints=newGridBagConstraints();constraints.weightx=0;constraints.weighty=0;constraints.insets=newInsets(5,5,5,5);}// Método que acrescenta o componentepublicvoidaddComponent(Componentcomp,introw,intcolumn,intwidth,intheight,intfill){constraints.fill=fill;constraints.gridx=column;constraints.gridy=row;constraints.gridwidth=width;constraints.gridheight=height;layout.setConstraints(comp,constraints);add(comp);}}
O método addComponente recebe 6 parâmetros, que são na seguinte ordem:
onde a qde_colunas é a quantidade de colunas que o componente vai ocupar e qde_linhas, a quantidade de linhas que ele vai ocupar e a direção que ele vai se orientar.
Voce deve usá-lo assim:
importcomponentes.ContentLayout;importjavax.swing.JLabel;importjavax.swing.JTextField;importjavax.swing.JTextArea;importjavax.swing.JFrame;publicclassFramePrincipalextendsJFrame{publicFramePrincipal(){super("Cadastro de Visitantes");setDefaultCloseOperation(EXIT_ON_CLOSE);setContentPane(getContainer());setLocationRelativeTo(null);pack();setVisible(true);}privateContentLayoutgetContainer(){// instanciando o diagramadorContentLayoutlayout=newContentLayout();JLabellblnome=newJLabel("Nome");layout.addComponente(lblnome,0,0,1,1,layout.horizontal);JLabellblobs=newJLabel("Observação");layout.addComponent(lblobs,0,1,1,1,layout.horizontal);JTextFieldtxtnome=newJTextField();txtnome.setColumns(20);layout.addComponent(txtnome,1,0,1,1,layout.horizontal);JTextAreamemobs=newJTextArea();memobs.setColumns(20);layout.addComponent(memobs,1,1,1,3,layout.horizontal);JLabellbltel=newJLabel("Telefone");layout.addComponente(lbltel,2,0,1,1,layout.horizontal);JTextFieldtxtel=newJTextField();txtel.setColumns(20);layout.addComponent(txtel,3,0,1,1,layout.horizontal);returnlayout;}}
Rode esse programa e verá que o JTextArea memobs ficará na linha 1, coluna 1 e ocupará um coluna a direita e tres linhas abaixo.
fer.ferreira6
Boa noite discorpio.
Sua classe é bem interessante e bem clara.
Consegui entender alguns fundamentos que não entendia antes.