Dúvida com Interface Gráfica

19 respostas
Z

Galera, segue mais uma dúvida minha rsrs

Meu trabalho é uma janela, que pede as informações: Matricula, ano, preço, 3 opções de escolher um plano, botão ok, gerar relatorio e sair.
o Botão só pode ser clicado até 10 vezes (diz que só pode cadastrar 10 clientes no maximo)
Todas as vezes que a pessoa clica no botão ok, mostra a matricula, o preço com o desconto que cada plano proporciona, e atribui +1 ao contador, por exemplo, se a pessoa seleciona plano 1, cont1++, e assim por diante. e pede também, para que eu calcule quantos reais no total cada plano recebeu, e um total de tudo
*mostrar matricula e o preço eu fiz.
*tenho a expressão para o contador e para os totais.
Minha dúvida é onde por essas expressões, e em relação a poder cadastrar até 10 pessoas, eu pensei em usar um for, ou até mesmo um while. Pensei em por eles quando a pessoa clicar no botão ok, mas não sei exatamente onde por.

No botão gerar relatório, pede pra chamas os contadores, e os totais, eu fiz da seguinte forma:

public void total(){
		double totprata=0;
		double totouro=0;
		double totdiam=0;
		double precoo = 0;
		int ano;
		ano = Integer.parseInt(txtano.getText());
		
			if (jrbprata.isSelected()) {
				precoo = Double.parseDouble(txtpreco.getText());
				precoo = precoo * 0.2;
				totprata=totprata+totprata;
			} else if (jrbouro.isSelected()) {
				precoo = Double.parseDouble(txtpreco.getText());
			if (ano <= 2000) {
				precoo = 0;
				totouro=totouro+totouro;
			} else 
				precoo = precoo * 0.3;
			totouro=totouro+totouro;
			}
			else if (jrbdiamante.isSelected()) {
				precoo = Double.parseDouble(txtpreco.getText());
				precoo = precoo * 0.4;
				totdiam=totdiam+totdiam;
			}
		}

Como eu faria pra chamar essas variaveis “precoo” e os “tot~” quando clicar no botão gerar relatorio?
alguma outra sugestão?

Agradeço quem puder dar uma força, muito obrigado =)

19 Respostas

FernandoFranzini

Vc tem que aprender a usar SWING…e fazer a chamada dentro do evento do botão.
Bons estudos - http://docs.oracle.com/javase/tutorial/uiswing/

Z

Não pode dar nenhuma dica (não tirando a importância desta, mas meu trabalho é p/ amanhã :frowning: )
algum exemplo…qlqr luz (em portugues hahaha)

FernandoFranzini

zenk:
Não pode dar nenhuma dica (não tirando a importância desta, mas meu trabalho é p/ amanhã :frowning: )
algum exemplo…qlqr luz (em portugues hahaha)

Não tem dica meu querido…ou vc sabe fazer ou não sabe…
ou ta esperando alguem aqui fazer por vc?

Z

se eu quisesse isso, eu teria colocado meu código e meu exercicio completo e feito o pedido, as dúvidas que eu tive aqui eu consegui alguns exemplos, e algumas explicações que me fizeram entender muito bem.

de qualquer forma, obrigado, querido =)

FernandoFranzini

zenk:
se eu quisesse isso, eu teria colocado meu código e meu exercicio completo e feito o pedido, as dúvidas que eu tive aqui eu consegui alguns exemplos, e algumas explicações que me fizeram entender muito bem.
de qualquer forma, obrigado, querido =)

Mais ou menos…
Vc precisa escrever uma classe usando JForm e adicionar um botão usando algum layout manager…dai vc implementa o evento do botão chamando esse sua classe ai de calculo…
Que tipo de ajudar vc esperava? Me diz ai…

asousaj

Olha esse artigo http://www.guj.com.br/articles/38
Embora não ache que tenha tempo habil para aprender swing

Melhor nem escrever isso ou do tipo “urgente”, “tenho pressa” … certamente seu professor não passou para entregar no dia seguinte.

A galera estressa pq isso ta virando moda aqui. Galera falta aula e depois desespera.
Não entendo pq alguem vai na facul e não se dedica ao maximo, outra coisa programador tem de saber ingles(tecnico ao menos) e ponto.

Qq coisa procura meu amigo GOOGLE diz pra ele ‘tutorial simples java swing’, garanto q ele vai lhe informar muita coisa.

Boa sorte!

Z

A classe ja está feita Fernando, e tem um evento aqui que ele mostra a matricula e o valor.

Eu fiz um método que ele gera esse valor de acordo com o plano que o cidadão escolher, e o método me da um return.

Pra fazer a contagem, eu vou ter até 3 retornos, eu queria colocar essa contagem, esses valores, dentro de um método só, da pra ter mais de um retorno? eu crio um método sem ser void, e “pego” a variavel com o valor que eu quiser (isso é possivel).

Z

asousaj:
Olha esse artigo http://www.guj.com.br/articles/38
Embora não ache que tenha tempo habil para aprender swing

Melhor nem escrever isso ou do tipo “urgente”, “tenho pressa” … certamente seu professor não passou para entregar no dia seguinte.

A galera estressa pq isso ta virando moda aqui. Galera falta aula e depois desespera.
Não entendo pq alguem vai na facul e não se dedica ao maximo, outra coisa programador tem de saber ingles(tecnico ao menos) e ponto.

Qq coisa procura meu amigo GOOGLE diz pra ele ‘tutorial simples java swing’, garanto q ele vai lhe informar muita coisa.

Boa sorte!

Sim, ele passou o trabalho na terça-feira.
Eu não faltei aula, meu professor ta fazendo a galera correr atrás mesmo.
Tirar dúvida virou moda? sabia não.

FernandoFranzini

zenk:
A classe ja está feita Fernando, e tem um evento aqui que ele mostra a matricula e o valor.

Eu fiz um método que ele gera esse valor de acordo com o plano que o cidadão escolher, e o método me da um return.

Pra fazer a contagem, eu vou ter até 3 retornos, eu queria colocar essa contagem, esses valores, dentro de um método só, da pra ter mais de um retorno? eu crio um método sem ser void, e “pego” a variavel com o valor que eu quiser (isso é possivel).


Agora sim vc pontuou uma questão.
É possível sim…um método retorna qualquer coisa inclusive um OBJETO!
Para fazer um método retornar varias informações, crie uma classe com estas informações encapsuladas e faça o metodo retornar um objeto dessa classe :smiley: .

Z

Show de bola Fernando, muito obrigado vou fazer nesse momento, usando o método na mesma classe, não há como pegar o objeto certo?

FernandoFranzini

Não entendi não… :?:

asousaj

Minhas desculpas então Zenk.

Ajudarei mais e criticarei menos.

Z

Pessoal, segui a dica do Fernando, criei uma classe só para cuidar da parte de contas.

public class Contadores extends Recepcao {
	public double totprata;
	public double totouro;
	public double totdiam;
	public double preco;
	public int contouro;
	public int contprata;
	public int contdiamante;
	
	public void precoo(){
	
	
		int ano=Integer.parseInt(txtano.getText());
	preco = Double.parseDouble(txtpreco.getText());
		
			if (jrbprata.isSelected()) {
				
				preco = preco * 0.2;
				totprata=totprata+totprata;
				contprata++;
			} else if (jrbouro.isSelected()) {
				if (ano <= 2000) {
				
				preco = 0;
				totouro=totouro+totouro;
				contouro++;
			} else 
				preco = preco * 0.3;
			totouro=totouro+totouro;
			contouro++;
			}
			else if (jrbdiamante.isSelected()) {
					preco = preco * 0.4;
			totdiam=totdiam+totdiam;
			contdiamante++;
			}}}

estou tentando chamar algum objeto, e não estou conseguindo os valores:
Local da lasse main que estou tentando chamar o objeto:

private JButton getBtnok() {

		if (btnok == null) {
			btnok = new JButton();
			btnok.addActionListener(new ActionListener() {
				
				public void actionPerformed(java.awt.event.ActionEvent e) {
					Contadores cont = new Contadores();
					JOptionPane.showMessageDialog(null,
							"Paciente   " + txtmat.getText()
									+ "\nValor da Consulta "+cont.preco);
						
					txtano.setText(null);
				txtmat.setText(null);
				txtpreco.setText(null);
						}
					
			});
			btnok.setBounds(new Rectangle(136, 160, 50, 26));
			btnok.setText("Ok");
			
		}
		return btnok;
	}

Ele mostra a Matricula do usuário, mas nao mostra o objeto da classe que eu criei…o que estou fazendo de errado?

Valder_Olmo_Correa

Zenk, sei lá, seu professor não passou nada de Swing para vocês antes dessa terça feira? Acho mito difícil aprender fazer isso até amanhã se não viu nada de Swing ainda.
Você deve aprender colocar um JFrame em sua classe, aprender a manipular os Layouts corretamente, inserir eventos nos botões e algumas coisas mais. Muita coisa em pouco tempo!

Z

Valder Olmo Corrêa:
Zenk, sei lá, seu professor não passou nada de Swing para vocês antes dessa terça feira? Acho mito difícil aprender fazer isso até amanhã se não viu nada de Swing ainda.
Você deve aprender colocar um JFrame em sua classe, aprender a manipular os Layouts corretamente, inserir eventos nos botões e algumas coisas mais. Muita coisa em pouco tempo!

Valder não deu nada, ele mostrou pra gente a criar a classe extends JFrame, ensinou a fazer botões, mas não ensinou nada de tratamento de eventos…sobre manipular Layouts, eu to me virando com o Eclipse, consegui fazer o layout da janela direitinho, sem mistério, mas como ele não ensinou como tratar os botões, eu to perdido…to me achando aos poucos, o Fernando deu aquela dica de criar uma classe pra eu fazer os calculos, eu fiz mas não está mostrando os valores quando eu chamo o objeto =/

Z

Resolvi esse problema criando vários métodos na mesma classe, pelo menos dessa forma, ele “leu” as contas.

asousaj

Zenk,
que bom que resolveu.

Contadores cont = new Contadores();  //declarou e criou o objeto 
JOptionPane.showMessageDialog(null, "Paciente   " + txtmat.getText() + "\nValor da Consulta "+cont.preco); //acessou um atributo de forma direta e nesse momento ele esta com o valor default 0.0

depois dá uma lida sobre encapsulamento, uso de get/set, sua classe não ta nadinha escapsulada … mas nada que impeça de usa-la.

// acho q seria algo assim quanto a usar um objeto

public class Teste {
	Teste2 teste2 = new Teste2();

	public void clicouBotao() {
		teste2.calcula(Double.parseDouble(txtpreco.getText()),
		Integer.parseInt(txtopcao.getText()));
		System.out.println("Opção: " + teste2.getOpcao() + " Preço: "
				+ teste2.getPreco());
	}

}
public class Teste2 {

	private int opcao;
	private double preco;

	public void calcula(double preco, int opcao) {
		switch (opcao) {
		case 0:
			this.preco = preco * 0.2;
			break;
		case 1:
			this.preco = preco * 0.4;
			break;
		case 2:
			this.preco = preco * 0.6;
			break;
		default:
			break;
		}
	}

	// contrutor
	public Teste2() {
		opcao = 0;
		preco = 0;
	}

	// getters only
	public int getOpcao() {
		return opcao;
	}

	public double getPreco() {
		return preco;
	}

}
Z
dessa forma continua sem mostrar o resultado:
import java.util.Scanner;
public class Diamante extends Recepcao{
	public double preco;
	public double valor;
	public double vTot; //valor total


	public double getValor()
	{return valor;}
	/*public void Diamante( double preco, double valor, double vTot)
	{this.preco=preco;
	this.valor=valor;
	this.vTot=vTot;
	
	}*/
	public double getPreco()
	{return preco;}

	public void valorTotal(double preco){
		preco = Double.parseDouble(txtpreco.getText());
		this.preco=preco*0.4;
		this.vTot+=valor;

	}


	
	
}
private JButton getBtnok() {
	if (btnok == null) {
	btnok = new JButton();
	btnok.addActionListener(new ActionListener() {
	public void actionPerformed(java.awt.event.ActionEvent e) {
if (jrbdiamante.isSelected()) {
		Diamante diam=new Diamante();		
		JOptionPane.showMessageDialog(null,"Paciente   " + txtmat.getText()
				+ "\nValor da Consulta "+diam.getPreco());}
}}}
asousaj

Pelo que percebi em nenhum momento o método valorTotal do objeto 'diam' está sendo invocado

private JButton getBtnok() {  
    if (btnok == null) {  
    btnok = new JButton();  
    btnok.addActionListener(new ActionListener() {  
    public void actionPerformed(java.awt.event.ActionEvent e) {  
if (jrbdiamante.isSelected()) {  
        Diamante diam=new Diamante();         

        diam.valorTotal(Double.parseDouble(txtpreco.getText()); // adiciona isso        

        JOptionPane.showMessageDialog(null,"Paciente   " + txtmat.getText()  
                + "\nValor da Consulta "+diam.getPreco());}  
}}}
Criado 30 de novembro de 2011
Ultima resposta 1 de dez. de 2011
Respostas 19
Participantes 4