Como fazer esse calculo?

13 respostas
ken420

Algum sr da matematica poderia me da uma mao?

tenho campo jtextfield que captura entrada de “STRINGS”, e tenho um jtextfieldB no qual recebe tambem string de valor e um 3 jtextfield que mostra o calculo veja o EX:
|JTEXTFIELD1| aqui recebe valor de 20% a 100%

|JTEXTFIELD2| nesse campo digito um valor ex: 1.000,00 e ele pega o valor do jtextfield1 e soma a porcentagem do que digitei no jtextfield1
Ex: coloquei 20% no jtextfield1 e coloquei 1.000,00 no jtextfield2 no campo 3 ele teria que aparecer 200,00

|JTEXTFIELD3| e aqui ele soma a porcentagem do que setei no jtextfield1 + o valor do jtextfield2.

agora falando no portugues claro para ficar facil entender:

tenho 1 campo no qual aceita a porcentagem de 20% a 100%(JTEXTFIELD1) e preciso que quando digitar no jtextfield2 ele faca o calculo em base do que coloquei no jtextfield1, e no jtextfield3 mostrar o resultado alguem sabe como faco um algoritimo para isso que pegue o valor que nao digitei ainda e some a porcentagem dele ?

se nao conseguirem entender posso explicar denovo sem problema nenhum obrigado pela atencao!

13 Respostas

malucocelo

Pega o valor digitado em porcentagem e divide por 100 daí multiplica pelo valor do outro textfield

Vinny

Eu entendi dessa maneira, não sei se é assim:
Seria a Porcentagem do JTextField1 sobre o valor digitado do JTextField2 mais o JTextField2
é isso?

float porcentagem = (Float.parseFloat(JTextField1.getText()) * Float.parseFloat(JTextField2.getText()) / 100) float resultado = porcentagem + Float.parseFloat(JTextField2.getText()); JTextField3.setText(resultado);

ken420

float n aceita os operadores * + -

Vinny

Como assim não aceita?
vc ta querend dizer que não da
pra soma, subtrair e nem multiplicar com variaveis do tipo float?

Cabei de testar o codigo que eu te mandei
o unico problema era que estava faltando
1 parentese funciona normal

float porcentagem = (Float.parseFloat(jTextField1.getText())) * (Float.parseFloat(jTextField2.getText()) / 100)
       float resultado = (porcentagem) + Float.parseFloat(jTextField2.getText());
       jTextField3.setText(String.valueOf(resultado));

Isso vai funcionar assim
Se vc coloca 10 no jTextField1 e no jTextField2 coloca 100
no jTextField3 vai aparecer 110 o que é os 10% de 100 mais 100 que é o valor que esta no jTextField2
se vc so quiser exibir o percentual não precisa fazer a soma exibi direta ja a variavel porcentagem no caso!

ken420

Vinny, tava dando a msg que o float nao aceitava os operadores eu acho que pq estava faltando um ) mas ele aceito agora, so que quase consegui resolver meu problema o ultimo problema eh o seguinte:

float porcentagem = (Float.parseFloat(jTextField1.getText())) * (Float.parseFloat(jt_salario.getText()) / 100);

em jtextfield1.getText() esta o problema, eu precisava armazenar o valor ai que esta em outro formulario digo : no formA eh aonde vai fazer essa operacao mas no formB que vou passar o valor da porcentagem que ira no lugar de jTextField1.getText(), como passar o valor de um formB e capturar ai o valor que esta la?

Vou dar otro exemplo:

no formA ele mostra o salario e o limite e no formB ele pega o % que ira ser feito o calculo e nao consigo passar o valor do formB para o calculo do formA, acho que agora fico mais claro!
poderia me ajudar? obrigado Vinny!

QQr duvida posso re explicar !

Vinny

Os Forms são de classes diferentes né
sendo assim vc terá que fazer um método
get para poder pegar o valor que vc quer
e chamar esse metodo no seu outro form!

public float getPercent()
{
   return Float.parseFloat(jTextField1.getText());
}
ken420

Vinny entendi o que vc quis dizer com o getPercent, mas veja a situacao minha, o problema eh o seguinte:
FormA aonde faz o calculo, FormB aonde seto a porcentagem, o problema eh que eu coloco no jtextfield do formB o numero da porcentagem la certinhu mas quando clico em ok esse formulario fexa!!!, como que no formA vou pegar o campo que digitei no jtextfield do formB! precisava sabe como armazeno o que digitei no formB na memoria para poder pegar no formA entendeu? o formB n esta aberto tambem ele fexa depois que seleciono a porcentagem ai precisava bolar um jeito de armazenar esse valor digitado no jtextfield, a solucao seria criar uma tabela no banco de dados apenas para isso ? ou existe alguma outra maneira trivial de armazenar o valor do jtextfield do formularioB que sera fechado apos o set!

Mais uma vez obrigado fera!!!

Vinny

Criar outra Tabela não precisa!

Vou tenta da um exemplo do que eu estou dizendo do get
Ve se vc intende o que eu estou querendo dizer:

Dentro da classe do FormA tem um lugar que vc faz a
Chamada do FormB certo?
então depois que fez toda a chamada do FormB vc vai
colocar um if, com o objejo do FormB.getPercent ai ja vai
retorna o valor que foi digitado no seu jTextField
um Exemplo pratico agora:

// Cria um Obejto normal do geito que vc ja deve de estar fazendo
        NomeDaClasseDoFormB jan = new NomeDaClasseDoFormB();
        jan.setLocationRelativeTo(this);
        jan.setModal(true);
        jan.setVisible(true);
        // Apartir daqui o seu FormB ja vai Estar Fechado 
        try
        {
                // vc pode colocar mais um get para verificar se ele clicou no ok mesmo
                // isso se tiver mais de um botão que fecha o FormB aqui no caso se ele clicar no ok
                // eu irei setar uma variavel dentro do FormB que armazena um numero
               // aqui no caso eu coloquei que o Botão Ok é o 1
	        if (jan.getOpcao()==1)
	        {
                  // usa o getPercent para pegar o seu valor que foi digitado no jTextField
                  // So que antes de vc Fechar o formB não esquece de guardar o valor
                  // em uma variavel do FormB
                  float porcentagem = jan.getPercent();
         }

Vc deve declar as Variaveis da sua classe do FormB
como se faz normal mente
Quando vc clicar no ok não esquece de setar os valores das
variaveis percent e da opcao
se vc fizer isso, vai da certo

O Codfigo abaixo é do FormB, que vai passar a porcentagem!

private int opcao=0;
private float percent=0;
//...

private void setPercent(float p);
{
  percent = p;
}

private void setOpcaot(int op);
{
  opcao = op;
}

//Evento de quando vc preciona o Botão OK
private void BOk_actionPerformed(ActionEvent e) 
{
        setOpcao(1);
        setPercent(Float.parseFloat(jTextField1.getText()));
        this.dispose();
}

Bom não sei se vc intendeu agora
mas qualquer coisa é so fala que eu tento
esclarece melhor

ken420

Entao vinny mas como guardo o valor no formB! esse e o X da questao!

Vinny

Da uma pesquisa em Programação Orientado a Obejos
Que vc vai intender oque eu estou querendo com o codigo que eu te
passei como exemplo

ken420

Vinny consegui entender seu codigo, e implementei ele mas nao consigo dar o getOpcao nao sei pq veja eu fis o setOpcao
FormB

private int opcao = 0;

public void setOpcao(int op) {
        System.out.println("op = "+op);
        this.opcao = op;
        System.out.println("opcao = "+opcao);
    } e retorna 1 corretamente aqui!!

+ meu get

public int getOpcao() {
        //System.out.println("opcao = "+this.opcao);
        return this.opcao;
    }

retorna 0 ;/////

formA

if(percent.getOpcao() == 1) {
                        System.out.println("opcao 1");
                    } else
                        //System.out.println("opcao 2");
                        System.out.println("percent regcustomer ="+percent.getOpcao());
                        RETORNA 0!!!!!

to fazendo algo errado? vlw

Vinny

qdo vc precionar o botão OK dentro do metodo
de clica do botão vc vai setar o valor de opção para 1
ta certo que vc fez mas acredito que esta faltando vc mudar
o valor da variavel opção;

Tenta ve isso ai
Qualquer coisa
Posta o seu codigo INTEIRO do FormA e do FormB
pra mim da uma olhada e te falar direitinho como
que faz usand o seu codigo
posta ai ou manda pro meu email:
[email removido]
que depois eu te retorno

ken420

mas o valor da variavel opcao eu n seto ele no comando setOpcao(1) ?

Criado 26 de agosto de 2009
Ultima resposta 9 de set. de 2009
Respostas 13
Participantes 3