Tab na interface grafica e tamanho

4 respostas
albjava

Tenho esse código:

import java.awt.Frame;
import javax.swing.JTextField;
import java.awt.Rectangle;
import javax.swing.JTextPane;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.*;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import java.util.Calendar;
import javax.swing.JOptionPane;

/**
 * <p>Title: DateBorn</p>
 *
 * <p>Description: Get age a person</p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: AMNS</p>
 *
 * @author Alberto Marianno
 * @version 1.0
 */
public class Idade extends Frame {
    public Idade() {
        super("Date Born Project 1.0");
        campoDataAtual.setText(dataAtual);
        try {
            jbInit();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    private void jbInit() throws Exception {
        this.setLayout(null);
        campoDataAtual.setBounds(new Rectangle(197, 71, 73, 20));
        campoDataAtual.addActionListener(new Idade_jTextField1_actionAdapter(this));
        campoData.setBounds(new Rectangle(37, 119, 89, 20));
        campoData.addActionListener(new Idade_campoData_actionAdapter(this));
        campoMes.setBounds(new Rectangle(136, 119, 87, 20));
        campoMes.addActionListener(new Idade_campoMes_actionAdapter(this));
        campoAno.setBounds(new Rectangle(232, 119, 76, 20));
        campoAno.addActionListener(new Idade_campoAno_actionAdapter(this));
        textDataAtual.setText("Data de Hoje:");
        textDataAtual.setBounds(new Rectangle(87, 70, 89, 21));
        textData.setText("Data ( DD )");
        textData.setBounds(new Rectangle(48, 143, 58, 14));
        textMes.setText("Mês (MM)");
        textMes.setBounds(new Rectangle(143, 143, 67, 14));
        textAno.setText("Ano (AAAA)");
        textAno.setBounds(new Rectangle(241, 143, 81, 14));
        calcId.setBounds(new Rectangle(32, 250, 109, 23));
        calcId.setText("Calcula Idade");
        calcId.addActionListener(new Idade_jButton1_actionAdapter(this));
        limpaCampos.setBounds(new Rectangle(153, 250, 118, 23));
        limpaCampos.setText("Limpar Campos");
        limpaCampos.addActionListener(new Idade_limpaCampos_actionAdapter(this));
        ajuda.setBounds(new Rectangle(285, 250, 101, 23));
        ajuda.setText("Ajuda");
        ajuda.addActionListener(new Idade_ajuda_actionAdapter(this));
        AIdE.setText("A Idade é:");
        AIdE.setBounds(new Rectangle(58, 199, 60, 14));
        resId.setBounds(new Rectangle(120, 194, 214, 20));
        resId.addActionListener(new Idade_resId_actionAdapter(this));
        textDateBorn.setHorizontalAlignment(SwingConstants.CENTER);
        textDateBorn.setText("DateBorn Project 1.0");
        textDateBorn.setBounds(new Rectangle(49, 12, 284, 41));
        this.add(campoAno);
        this.add(campoMes);
        this.add(campoData);
        this.add(textAno);
        this.add(calcId);
        this.add(ajuda);
        this.add(limpaCampos);
        this.add(AIdE);
        this.add(resId);
        this.add(textDateBorn);
        this.add(textData);
        this.add(textMes);
        this.add(campoDataAtual);
        this.add(textDataAtual);
    }

    JTextField campoDataAtual = new JTextField();
    JTextField campoData = new JTextField();
    JTextField campoMes = new JTextField();
    JTextField campoAno = new JTextField();
    JLabel textDataAtual = new JLabel();
    JLabel textData = new JLabel();
    JLabel textMes = new JLabel();
    JLabel textAno = new JLabel();
    JButton calcId = new JButton();
    JButton limpaCampos = new JButton();
    JButton ajuda = new JButton();
    JLabel AIdE = new JLabel();
    JTextField resId = new JTextField();
    JLabel textDateBorn = new JLabel();

    String dataAtual = new SimpleDateFormat("dd/MM/yyyy").format(new Date());


    public int calculaIdade() {

        int ano = Integer.parseInt(campoAno.getText());
        int data = Integer.parseInt(campoData.getText());
        int mes = Integer.parseInt(campoMes.getText());
        // Create a calendar object with the date of birth
        Calendar dateOfBirth = new GregorianCalendar(ano, mes, data);

        // Create a calendar object with today's date
        Calendar today = Calendar.getInstance();

        // Get age based on year
        int age = today.get(Calendar.YEAR) - dateOfBirth.get(Calendar.YEAR);

        // Add the tentative age to the date of birth to get this year's birthday
        dateOfBirth.add(Calendar.YEAR, age);

        // If this year's birthday has not happened yet, subtract one from age
        if (today.before(dateOfBirth)) {
            age--;
        }

        return age;
    }


    public void jTextField1_actionPerformed(ActionEvent e) {

        //Aqui seto no campo campoDataAtual a data do dia
        //campoDataAtual.setText(dataAtual);
    }

    public void jButton1_actionPerformed(ActionEvent e) {

        //Aqui a ação de calcular a idade e setar no resId
        int res;
        String result;
        res = this.calculaIdade();
        result = String.valueOf(res);
        resId.setText(result);
    }

    public void limpaCampos_actionPerformed(ActionEvent e) {

        //Todos os campos são limpos para aguardar novos dados
        this.resId.setText("");
        this.campoAno.setText("");
        this.campoData.setText("");
        this.campoMes.setText("");

    }

    public void ajuda_actionPerformed(ActionEvent e) {

        //Aqui vai ficar a ação de ajuda (Fazer com JOptionPane)
        String message = "Para Calcular as idades basta colocar cada informação nos devidos campos. (DD/MM/AAAA)/nClicar no botão |Calcula idade|\nCriado pela AMNS :: Tecnologias\n Autor: Alberto MArianno\nCopyright © 2006 - Todos os direitos reservados.";
        JOptionPane.showMessageDialog(null, message, "AJUDA DATE BORN PROJECT 1.0",
                                      JOptionPane.INFORMATION_MESSAGE);
    }

    public void campoData_actionPerformed(ActionEvent e) {
        //Ação de Campo Data
    }

    public void campoMes_actionPerformed(ActionEvent e) {

        //Ação de Campo Mes
    }

    public void campoAno_actionPerformed(ActionEvent e) {

        //Ação de Campo ANo
    }

    public void resId_actionPerformed(ActionEvent e) {

        //Ação de Campo Recebe ID
    }
}


class Idade_resId_actionAdapter implements ActionListener {
    private Idade adaptee;
    Idade_resId_actionAdapter(Idade adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.resId_actionPerformed(e);
    }
}


class Idade_campoAno_actionAdapter implements ActionListener {
    private Idade adaptee;
    Idade_campoAno_actionAdapter(Idade adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.campoAno_actionPerformed(e);
    }
}


class Idade_campoMes_actionAdapter implements ActionListener {
    private Idade adaptee;
    Idade_campoMes_actionAdapter(Idade adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.campoMes_actionPerformed(e);
    }
}


class Idade_campoData_actionAdapter implements ActionListener {
    private Idade adaptee;
    Idade_campoData_actionAdapter(Idade adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.campoData_actionPerformed(e);
    }
}


class Idade_ajuda_actionAdapter implements ActionListener {
    private Idade adaptee;
    Idade_ajuda_actionAdapter(Idade adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.ajuda_actionPerformed(e);
    }
}


class Idade_limpaCampos_actionAdapter implements ActionListener {
    private Idade adaptee;
    Idade_limpaCampos_actionAdapter(Idade adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.limpaCampos_actionPerformed(e);
    }
}


class Idade_jButton1_actionAdapter implements ActionListener {
    private Idade adaptee;
    Idade_jButton1_actionAdapter(Idade adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.jButton1_actionPerformed(e);
    }
}


class Idade_jTextField1_actionAdapter implements ActionListener {
    private Idade adaptee;
    Idade_jTextField1_actionAdapter(Idade adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.jTextField1_actionPerformed(e);
    }
}

Mais na tela dele eu não posso passar de um campo pra outro com TAB, só com o mouse. Além do mais, qdo coloco pra rodar ele naum vem grand. Como seta o tamanho dele?

Obrigado

4 Respostas

keller

Olá,

O Tab funciona na ordem que os componentes sao adicionados
ao container.

Para setar o tamanho da janela nao lembro qual metodo mas é um destes.
janela.setPrefferedSize janela.setSize janela.“setHeight & setWidth”

Valeu? Até… :thumbup:
[s]

albjava

Esse é o meu main...

import java.awt.*;

public class IdMain {

    public static void main(String[] args) {
        Idade dialog = new Idade();
        dialog.setSize(800,600);
        dialog.pack();
        dialog.show();
        

    }
}

Não entendi o negocio do TAB e o dialog.setSize(880,600); nãao funcionou...

keller
albjava:
Esse é o meu main...
import java.awt.*;

public class IdMain {

    public static void main(String[] args) {
        Idade dialog = new Idade();
        dialog.setSize(800,600);
        dialog.pack();
        dialog.show();
        

    }
}

Não entendi o negocio do TAB e o dialog.setSize(880,600); nãao funcionou...

Uhmn, se voce tirar o "pack();" provavelmente ira funcionar..
Caso nao funcionar tente os outros metodos que eu falei..

E o negocio do tab funciona assim:
txtNome = new JTextField();
container.add( txtNome );

txtIdade = new JTextField()
container.add( txtIdade );

txtNome.requestFocus();
janela.setVisible( true );

Notou a sequencia que foi adicionado os TextFields ao container?
Será assim que funcionara o tab. no inicio ele estara com o foco no
TextField nome. apertando TAB ele passara o foco para o TextField Idade.

Valeu? Até.. :thumbup:
[s]

albjava

Valeu resolvido… :smiley:

Criado 18 de abril de 2006
Ultima resposta 19 de abr. de 2006
Respostas 4
Participantes 2