Ir ao conteúdo
  • Cadastre-se

vitorrtonon

Membro Júnior
  • Posts

    11
  • Cadastrado em

  • Última visita

Reputação

1
  1. Olá, boa noite! Estou tentando criar uma interface gráfica que possui um campo TextField, a qual eu adiciono um gerenciador de evento (ActionListener). Quando o enter é digitado, eu consigo capturar o conteúdo digitado no campo, através do método actionPerfomed. O trecho de código onde implemento a ActionListener é: class TextFieldHandler implements ActionListener { private JTextField dataInput; private JTextField dataOutput; private String input; private String output; public TextFieldHandler(JTextField dataInput, JTextField dataOutput) { this.dataInput = dataInput; this.dataOutput = dataOutput; this.input = null; this.output = null; } public void actionPerformed(ActionEvent event) { if(event.getSource() == this.dataInput) { this.input = event.getActionCommand(); this.dataInput.setText(""); this.dataOutput.setText(this.output); } } public String getInput() { return this.input; } public String getOutput() { return this.output; } public void setInput(String input) { this.input = input; } public void setOutput(String output) { this.output = output; }} Eu queria, após o enter ser digitado (quando o evento é chamado), passar essa string obtida para uma outra classe que está esperando uma string. O que eu pensei em fazer: crio um while na classe em que quero usar a string obtida, de tal forma que quando aquela string deixar de ser null, eu posso usá-la. Como se segue: public class Client extends JFrame { private TextFieldHandler handler; .... .... public void execute() { .... .... while(this.handler.getInput() == null); .... .... } Porém, esse é um loop infinito, porque aparentemente eu não consigo usar a string que foi setada no método de capturar o evento. O que quero dizer: mesmo com os eventos alterando a string "input", ainda assim, nas outras classes, como na "Client", elas ficam valendo null. Alguém sabe me ajudar, usando eventos como esses, a pegar o conteúdo digitado em um JTextField e usar em outra classe? Obrigado.
  2. O código abaixo resolve o seu problema. #include <iostream>#include <stdlib.h> using namespace std; int main(){ int i; double a,b,c; cout<< "Digite o numero correspondente a operacao desejada.\n1-Soma\n2-Subtracao\n3-Multiplicacao\n4-Divisao"<<endl; cin>>i; switch(i) { case 1: cout<< " Digite o valor do numero 'a': "<<endl; cin>>a; cout<< " Digite o valor do numero 'b': "<<endl; cin>>b; c = a+b; cout<< "O valor da soma e: "<<c<<endl; break; case 2: cout<< " Digite o valor do numero 'a': "<<endl; cin>>a; cout<< " Digite o valor do numero 'b': "<<endl; cin>>b; c = a-b; cout<< "O valor da diferenca e: "<<c<<endl; break; case 3: cout<< " Digite o valor do numero 'a': "<<endl; cin>>a; cout<< " Digite o valor do numero 'b': "<<endl; cin>>b; c = a*b; cout<< "O valor da multiplicacao e: "<<c<<endl; break; case 4: cout<< " Digite o valor do numero 'a': "<<endl; cin>>a; cout<< " Digite o valor do numero 'b': "<<endl; cin>>b; c = a/b; cout<< "O valor da divisao e: "<<c<<endl; break; default: cout<< "Operacao invalida."; break; } } As alterações que eu fiz foram na forma que você faz as atribuições. Ao invés de usar, por exemplo, a+b==c, eu fiz: c = a+b. Você vai usar o "==" quando quiser fazer comparações. Por exemplo: if(a+b == c). Quando desejar fazer atribuições a variáveis, use somente =;
  3. Sou iniciante em java. Quero fazer uma rotina que altere o valor de duas variáveis. Pela ausência explícita de ponteiros em java, não sei como fazer. Meu código em Java: public class teste { private int a; private int b; teste() { a = 5; b = 4; } public void swap(int a, int { int aux = a; a = b; b = aux; } void print() { System.out.println("Antes: " + this.a + " " + this.; this.swap(this.a, this.; System.out.println("Depois: " + this.a + " " + this.; } public static void main(String[] args) { teste n = new teste(); n.print(); }} Em C++, eu faria da seguinte maneira: #include <stdlib.h>#include <stdio.h>#include <iostream>using namespace std;class teste { private: int a, b; public: teste() { this->a = 5; this->b = 6; } void swap(int *a, int * { int aux; aux = *a; *a = *b; *b = aux; } void print() { cout << "Antes: " << this->a << " " << this->b << endl; swap(&this->a, &this->; cout << "Depois: " << this->a << " " << this->b << endl; }};int main(int argc, char *argv[]) { teste *n = new teste(); n->print(); delete n; return 0;} O meu código em java não faz o que eu quero, enquanto o código em C++ sim. Alguém pode me ajudar a lidar com a falta de ponteiros? PS: eu consegui fazer o procedimento da troca de variáveis usando a classe Vector.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...