Fazendo Interface na "Unha"

2 respostas
WashingtonBotelho

E ai galera!
Eu venho estudando Inteface feita na "unha" e até é legal, mas na hora dos alinhamentos não é bem assim.
Tenho uma janela feita na "unha" e outra feita no NB, gostaria de saber o que faço no código pra deixar ela igual a feita pelo NB.

[IMG]http://i17.photobucket.com/albums/b66/Wakort/JanelaUnha.jpg[/IMG]

package Tela;

import java.awt.*;
import java.awt.*;
import javax.swing.*;

class ClienteFrame extends JFrame {

  public ClienteFrame() {
    super(".:: Web Server ::.");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(500, 30, 400, 300);
    setLayout(new FlowLayout(FlowLayout.CENTER));
    add(new ClientePane());
    setVisible(true);
  }

  public static void main(String[] args) {
    new ClienteFrame();
  }

  class ClientePane extends JPanel implements ActionListener {

    JLabel ipL = new JLabel("Ip:   ");
    JLabel portaL = new JLabel("Porta:   ");
    JLabel arquivoL = new JLabel("Arquivo:   ");
    JTextField ipF = new JTextField(15);
    JTextField portaF = new JTextField(10);
    JTextField arquivoF = new JTextField(20);
    JTextArea textArea = new JTextArea(10, 25);
    JCheckBox ipCheck = new JCheckBox();
    JCheckBox portaCheck = new JCheckBox();
    JButton btnConectar = new JButton("Conectar", new ImageIcon(getClass().getResource("/conect.png")));
    JButton btnLimpar = new JButton("Limpar", new ImageIcon(getClass().getResource("/limpar.png")));
    GridBagLayout bag = new GridBagLayout();

    public ClientePane() {
      setLayout(bag);
      addComponent(ipL,     0, 0, 1, 1, 1, 1, GridBagConstraints.NONE, GridBagConstraints.EAST);
      addComponent(ipF,     1, 0, 1, 1, 1, 1, GridBagConstraints.NONE, GridBagConstraints.WEST);
      addComponent(ipCheck, 2, 0, 1, 1, 1, 1, GridBagConstraints.NONE, GridBagConstraints.WEST);

      addComponent(portaL,     0, 1, 1, 1, 1, 1, GridBagConstraints.NONE, GridBagConstraints.EAST);
      addComponent(portaF,     1, 1, 1, 1, 1, 1, GridBagConstraints.NONE, GridBagConstraints.WEST);
      addComponent(portaCheck, 2, 1, 1, 1, 1, 1, GridBagConstraints.NONE, GridBagConstraints.WEST);

      addComponent(arquivoL, 0, 2, 1, 1, 1, 1, GridBagConstraints.NONE, GridBagConstraints.EAST);
      addComponent(arquivoF, 1, 2, 1, 1, 1, 1, GridBagConstraints.NONE, GridBagConstraints.WEST);

      addComponent(textArea, 1, 3, 1, 1, 1, 1, GridBagConstraints.NONE, GridBagConstraints.WEST);

      addComponent(btnConectar, 0, 4, 1, 1, 1, 1, GridBagConstraints.NONE, GridBagConstraints.EAST);
      addComponent(btnLimpar,   1, 4, 1, 1, 1, 1, GridBagConstraints.NONE, GridBagConstraints.EAST);
    }

    public void actionPerformed(ActionEvent e) {
      throw new UnsupportedOperationException("Not supported yet.");
    }

    void addComponent(Component component, int gridx, int gridy, int gridwidth, int gridheight, int weightx, int weighty, int fill, int anchor) {
      GridBagConstraints constraints = new GridBagConstraints();
      constraints.gridx = gridx;
      constraints.gridy = gridy;
      constraints.gridwidth = gridwidth;
      constraints.gridheight = gridheight;
      constraints.weightx = weightx;
      constraints.weighty = weighty;
      constraints.fill = fill;
      constraints.anchor = anchor;
      bag.setConstraints(component, constraints);
      add(component);
    }
  }
}

[IMG]http://i17.photobucket.com/albums/b66/Wakort/JanelaNB.jpg[/IMG]

* Já vejo pessoas falando: "Pra que fazer código na unha?"
Abraço.. =]

2 Respostas

Fernando_Generoso_da

Cara,

Dá uma olhada no Jgoodies Forms(http://www.jgoodies.com/downloads/libraries.html). é muito melhor e mais fácil de trabalhar do que o GridBagLayout

att

Fernando Rosa

M

Você pode utilizar um outro tipo de layout mais simples ou até mesmo não utilizar layout e setar a posição do objeto na mão através do setBounds(pos1,pos2,pos3,pos4)

abs,

Criado 29 de março de 2008
Ultima resposta 30 de mar. de 2008
Respostas 2
Participantes 3