Swing com Singleton

4 respostas
M

Boa noite galera, estou apredendo java na parte de swing, criei um formulario, onde o usuario tem que entrar com o nome, altura , peso,
idade, sexo.

preciso habilitar esses botões, alem disso tem uma classe singleton que se chama controlador de calorias é ela que gerencia tudo.
como faço para habilitar:
Quem puder me ajudar, pois tenho que entregar hoje a noite, a se não for incomodo coloque comentariodo que esta fazendo.

obrigado

public class Tela extends JFrame

{

private JPanel painel1;

private JPanel painel2;

private JPanel painel3;

private JPanel painelNivel;

private JPanel painel4;
private JLabel rotulo1;
private JLabel rotulo2;
private JLabel rotulo3;
private JLabel rotulo4;
private JLabel rotulo5;
private JLabel lbSexo;
private JLabel lbNivelAtividade;


private JTextField texto1;
private JTextField texto2;
private JTextField texto3;
private JTextField texto4;
private JTextField texto5;


private JRadioButton rbSedentario;
private JRadioButton rbNivel1;
private JRadioButton rbNivel2;
private JRadioButton rbNivel3;
private JRadioButton rbNivel4;
//	private JRadioButton rbSexo;

private JRadioButton rbMasculino;

private JRadioButton rbFeminino;

private ButtonGroup grupo;

private ButtonGroup grupo1;
private JButton btCalcular;

public Tela()
{
	super("Calculo da Taxa do Metabolismo Basal");
	setLayout(new BorderLayout());

	Container tela = getContentPane();

	//define o Layout dentro do painel

	painel1 = new JPanel();
	painel1.setLayout(new GridLayout(10,2));
	painel1.setBorder(BorderFactory.createEtchedBorder());

	painel2 = new JPanel();
	painel2.setLayout(new BorderLayout());
	painel2.setBorder(BorderFactory.createEtchedBorder());

	painel3 = new JPanel();
	painel3.setLayout(new GridLayout(5,1));
	painel3.setBorder(BorderFactory.createEtchedBorder());

	painel4 = new JPanel();
	painel4.setLayout(new GridLayout(1,1));
	painel4.setBorder(BorderFactory.createEtchedBorder());


	//cria o que vai ser exibido na tela
	rotulo1 = new JLabel("Nome");
	rotulo2 = new JLabel("Idade");
	rotulo3 = new JLabel("Altura");
	rotulo4 = new JLabel("Peso");
	rotulo5 = new JLabel("Calculo");

	texto1 = new JTextField(30);
	texto2 = new JTextField(3);
	texto3 = new JTextField(10);
	texto4 = new JTextField(10);
	texto5 = new JTextField(10);


	lbNivelAtividade = new JLabel("Nivel de Atividade");
	rbSedentario = new JRadioButton("Sedentário");
	rbNivel1 = new JRadioButton("Nível 1");
	rbNivel2 = new JRadioButton("Nível 2");
	rbNivel3 = new JRadioButton("Nível 3");
	rbNivel4 = new JRadioButton("Nível 4");

	lbSexo = new JLabel(" Sexo");
	rbMasculino = new JRadioButton("Maculino");
	rbFeminino = new JRadioButton("Feminino");

	painel1.add(rotulo1);
	painel1.add(texto1);
	painel1.add(rotulo2);
	painel1.add(texto2);
	painel1.add(rotulo3);
	painel1.add(texto3);
	painel1.add(rotulo4);
	painel1.add(texto4);
	painel1.add(rotulo5);
	painel1.add(texto5);

	painel2.add(BorderLayout.NORTH, lbNivelAtividade);

	painelNivel = new JPanel();
	painelNivel.setLayout(new GridLayout(5,1));
	painelNivel.add(rbSedentario);
	painelNivel.add(rbNivel1);
	painelNivel.add(rbNivel2);
	painelNivel.add(rbNivel3);
	painelNivel.add(rbNivel4);

	//adiciona o RadioButton em um grupo para que
	//	somente um seja selecionado

	grupo1 = new ButtonGroup();
	grupo1.add(rbSedentario);
	grupo1.add(rbNivel1);
	grupo1.add(rbNivel2);
	grupo1.add(rbNivel3);
	grupo1.add(rbNivel4);



	painel2.add(BorderLayout.CENTER, painelNivel);




	painel3 = new JPanel();
	painel3.setLayout(new GridLayout(5,1));
	painel3.add(lbSexo);
	painel3.add(rbMasculino);
	painel3.add(rbFeminino);

	//
	grupo = new ButtonGroup();
	grupo.add(rbMasculino);
	grupo.add(rbFeminino);

	//Adiciona dicas aos botões

	rotulo1.setToolTipText("Escreva  o nome");
	rotulo2.setToolTipText("Informe   a idade");
	rotulo3.setToolTipText("Informe  a altura");
	rotulo4.setToolTipText("Informe o peso");
	rotulo5.setToolTipText("Calculo do resultado");

	lbNivelAtividade.setToolTipText("Escolha uma opção:");
	lbSexo.setToolTipText("Escolha uma opção:");



	btCalcular = new JButton("OK");
	btCalcular.setBounds(100,20,50,10);


	btCalcular.addActionListener
	( new ActionListener()
	{
		public void actionPerformed(ActionEvent e)
		{

			ControladorCalculoCalorias controlador = 
				ControladorCalculoCalorias.getInstancia();

			btCalcularClick;





		}
	}		    
	);




	tela.add(BorderLayout.WEST, painel1);
	tela.add(BorderLayout.CENTER, painel2);
	tela.add(BorderLayout.EAST, painel3);
	tela.add(BorderLayout.SOUTH,btCalcular);
	super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

	super.pack();




}

public static void main(String[] args) 
{
	new Tela().setVisible(true);

}

4 Respostas

Mrwin

Cara, facilitaria a vida de quem quer te ajudar se vc nos ajudasse. Qual é realmente sua dúvida? se estou enxergando bem, o actionperformed de teu botão vai virar um loop não acha?

Onde está teu código de negócio? o q tua tela é pra fazer? tá faltando a lógica do negócio e também vc esclarecer oq falta.

M

Esse o que tenho fazer, já criei as classes e o formulario mais não consigo habilitar os botões para receber os dados.

DESCRIÇÃO
O cálculo descrito a seguir tem por objetivo determinar quantas calorias uma pessoa pode
consumir diariamente, sem o risco de engordar. Para chegar a esse valor, são necessárias
algumas etapas, as quais são descritas abaixo:

ETAPA 1 ? Cálculo da Taxa de Metabolismo Basal (TMB)

Para saber de quantas calorias o organismo de uma pessoa precisa por dia para manter

as funções básicas, é necessário obter a taxa de metabolismo basal, a qual o cálculo é

detalhado a seguir:

Para Homens:

TMB = 66 + (13,7 x peso pessoa) + (5 x altura pessoa) ? (6,8 x idade pessoa)

Para Mulheres:

TMB = 655 + (9,6 x peso pessoa) + (1,8 x altura pessoa) ? (4,7 x idade pessoa)

Onde:

· peso - peso da pessoa expresso em quilos;

· altura - altura da pessoa expressa em centímetros;

· idade - idade da pessoa expressa em anos.
ETAPA 2 ? Cálculo das Calorias Diárias (CD)

A fórmula para calcular a quantidade de calorias diárias de uma pessoa é a seguinte:

CD = TMB x fator do nível de atividade física da pessoa

Onde:

· TMB ? taxa de metabolismo basal da pessoa obtido na etapa 1;

· fator do nível de atividade física da pessoa: fator relativo ao nível de atividade física

praticado pela pessoa, o qual está associado ao número de dias por semana em que

a pessoa faz exercícios, a saber:

Nível de Atividade Física Fator
Sedentário 1,20
Fisicamente Ativo Nível 1 ? exercícios leves até 3 vezes por semana 1,37
Fisicamente Ativo Nível 2 ? exercícios moderados de 3 a 5 vezes por semana 1,55
Fisicamente Ativo Nível 3 ? exercícios intensos, 6 ou 7 vezes por semana 1,72
Fisicamente Ativo Nível 4 ? atletas 1,90

que permita ao usuário saber quantas calorias ele pode consumir diariamente sem o
risco de engordar. Para tanto, considere os diagramas UML abaixo e as descrições de tipos

Diagramas UML
Casos de Uso
Diagrama de Classes

Tipo Enumerado Sexo
Características
Nome Tipo Especificador Arquivo
Sexo enum public Sexo.java
Propósito

Representar os tipos de sexo.
Elementos
Nome Identificador Descrição
masculino 1 Masculino
feminino 2 Feminino
Atributos
Nome Especificador Tipo Descrição
id private int Identificador do sexo.
descricao private String Descrição do sexo.
Construtores
Assinatura Observação
Sexo(int id, String descricao)
Métodos
Assinatura Propósito
public int getId() Permitir acesso ao identificador do sexo.
public String getDescricao() Permitir acesso à descrição do sexo.

Tipo Enumerado NivelAtividade
Características
Nome Tipo Especificador Arquivo
NivelAtividade enum public NivelAtividade.java
Propósito
Representar os tipos de sexo.
Elementos
Nome Identificador Descrição Fator
sedentario 0 Sedentário 1,20
nivel1 1 Fisicamente Ativo Nível 1 ? exercícios leves até 3 vezes por
semana
1,37
nivel2 2 Fisicamente Ativo Nível 2 ? exercícios moderados de 3 a 5
vezes por semana
1,55
nivel3 3 Fisicamente Ativo Nível 3 ? exercícios intensos, 6 ou 7 vezes
por semana
1,72
nivel4 4 Fisicamente Ativo Nível 4 ? atletas 1,90
Atributos
Nome Especificador Tipo Descrição
id private int Identificador do nível de atividade física.
descricao private String Descrição do nível de atividade.
fator private float Fator do nível de atividade física.
Construtores
NivelAtividade(int id, String descricao, float fator)
Métodos
Assinatura Propósito
public int getId() Permitir acesso ao identificador do nível de atividade.
public String getDescricao() Permitir acesso à descrição do nível de atividade.
public float getFator() Permitir acesso ao fator do nível de atividade.

Classe Pessoa
Características
Nome Tipo Especificador Arquivo
Pessoa class public Pessoa.java
Propósito
Representar uma pessoa com os atributos necessários para o cálculo de calorias diárias.
Atributos
Nome Especificador Tipo Descrição
nome private String Nome da pessoa.
peso private int Massa da pessoa expressa em quilogramas.
altura private int Altura da pessoa expressa em centímetros.
idade private int Idade da pessoa expressa em anos.
sexo private Sexo Sexo da pessoa.
nivel private NivelAtividade Nível de atividade da pessoa.
Construtores
Assinatura Observação
private Pessoa() Construtor padrão.
public Pessoa(String nome,Sexo sexo) Deve atualizar os atributos privados nome e sexo de
acordo com os parâmetros recebidos.
Métodos
Assinatura Propósito
public String getNome() Permitir acesso ao nome da pessoa.
public Sexo getSexo() Permitir acesso ao sexo da pessoa.
public int getPeso() Permitir acesso ao peso da pessoa.
public void setPeso(int peso) Permitir atualização do peso da pessoa.
public int getAltura() Permitir acesso à altura da pessoa.
public void setAltura(int altura) Permitir atualização da altura da pessoa.
public int getIdade() Permitir acesso à idade da pessoa.
public void setIdade(int idade) Permitir atualização da idade da pessoa.

Classe TaxaMetabolismoBasal
Características
Nome Tipo Especificador Arquivo
TaxaMetabolismoBasal class public TaxaMetabolismoBasal.java
Propósito
Calcular a taxa de metabolismo basal de uma pessoa.
Atributos
Nome Especificador Tipo Descrição
pessoa private Pessoa Objeto representativo da pessoa para a qual
será calculada a taxa de metabolismo basal.
Construtores
TaxaMetabolismoBasal() Construtor padrão.
public TaxaMetabolismoBasal (Pessoa pessoa) Deve atualizar o atributo privado pessoa de acordo com
o parâmetro recebido.
Métodos
Assinatura Propósito
public Pessoa getPessoa() Permitir acesso ao objeto representativo da pessoa.
public float calcular() Calcular e informar a taxa de metabolismo basal da pessoa.

Classe CaloriasDiarias
Características
Nome Tipo Especificador Arquivo
CaloriasDiarias class public CaloriasDiarias.java
Propósito
Calcular o quantidade de calorias diárias necessárias para uma pessoa.
Atributos
Nome Especificador Tipo Descrição
tmb private TaxaMetabolismoBasal Objeto representativo da taxa de metabolismo
basal.
Construtores
Assinatura Observação
private CaloriasDiarias() Construtor padrão.
public CaloriasDiarias(TaxaMetabolismoBasal tmb) Deve atualizar o atributo privado tmb de acordo com o
parâmetro recebido.
Métodos
Assinatura Propósito
public Pessoa getTMB() Permitir acesso ao objeto representativo da taxa de metabolismo basal.
public float calcular() Calcular e informar a quantidade de calorias diárias necessárias à
pessoa.

Classe ControladorCalculoCalorias
Características
Nome Tipo Especificador Arquivo
ControladorCalculoCalorias class public ControladorCalculoCalorias.java
Propósito
Coordenar o cálculo da quantidade de calorias diárias necessárias para uma pessoa.
Construtores
Assinatura Observação
private ControladorCalculoCalorias Construtor padrão.
Métodos
Assinatura Propósito
public float calcular(String nome,
int peso, int altura, int idade, Sexo
sexo, NivelAtividade nivel)
Calcular e informar a quantidade de calorias diárias necessárias à
pessoa.

Formulário FormCalorias
Visual

Mrwin

Trabalho de faculdade hein! bem… confesso que não lí toda este especificação. sua dúvida é apenas habilitar os botões? mostra tua classe de formulário, de preferência, abstraia códigos que podem ser sub-entendidos para diminuir o tamanho do código. Se o problema está em habilitar botões é provavel que seja rápido de resolver.

Luis_Correa

Se entendi bem oq vc disse, precisa habilitar ele a receber os dados
então faça isso:

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==btCalcular)

{

ControladorCalculoCalorias controlador =

ControladorCalculoCalorias.getInstancia();

btCalcularClick;

}

}
}

Criado 3 de dezembro de 2007
Ultima resposta 4 de dez. de 2007
Respostas 4
Participantes 3