Campo de texto que adiciona em atributo de objeto

3 respostas
D

ola pessoal sou novo em java. Nas aulas q tenho o professor pediu pra fazer um trabalho em modo grafico usando o eclipse.
Consultei o livro de Deitel, vi alguns artigos e codigos na internet e nao da certo. O problema consiste em eu ler varios artigos entender mais ou menos o que faz e nao me responder a seguinte pergunta :

o codigo adiciona uma variavel inteira num atribudo de um objeto, e a apos este objeto é “adicionado” no array.

f1.adiciona(300);
isto cai no objeto e depois o coloco no array.

quero saber como adiciono este inteiro 300 para dentro do obejto a partir do modo grafico.

algo como :

f1.adiciona( JTextField = texto da janela);

Quais sao as classes chamadas/extends pra fazer este codigo ?

alguem conhece algum artigo que explica isto?

um abraco

3 Respostas

D

tenho o seguinte:

o codigo main:
public class Testa {
	  public static void main(String args[])  
	    {  
	        SwingExemplo1 s = new SwingExemplo1();	       	        
	        s.criaJanela();
	        
	    }

}
a classe armazena que guarda duas variaveis:
class Armazena {
	String nome;
	int x;
	
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public int getX() {
		return x;
	}
	public void setX(int x) {
		this.x = x;
	}
}
e a classe que abre a janela:
import java.awt.*;
import java.awt.Event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;  
import javax.swing.JLabel;  
import javax.swing.JPanel;  
import javax.swing.JTextField;
  
public class SwingExemplo1 extends JFrame {  
    JPanel panel;  
    JLabel msg;
    JTextField algumCampoDeTexto;
    JButton botaoAdicionar; 
    JPanel botao;
      
    public SwingExemplo1()  
    {  
        super("Titulo da Janela");  
    }  
              
    public void criaJanela(){         
    	Armazena ar = new Armazena();
    	
    	panel = new JPanel();  
        msg = new JLabel("Texto na janela");  
      
        algumCampoDeTexto = new JTextField("digite algo");    	    	
        botaoAdicionar = new JButton("OK");
        String nome;
        botaoAdicionar.addActionListener(
        		new ActionListener() {
					
					@Override
					public void actionPerformed(ActionEvent arg0) {
						// TODO Auto-generated method stub
						
						
						 if(event.getSource() == textField1){
							string = String.format(?algumCampoDeTexto: %s?, event.getActionCommand());
							  
						
					}
				}
        		        
        );
                
        
        panel.add(msg);  
        panel.add(algumCampoDeTexto);
        panel.add(botaoAdicionar);
                
        
        
        ar.setNome(algumCampoDeTexto.getText());
          
        getContentPane().add(panel, BorderLayout.CENTER);  
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
                         
        pack();  
        setVisible(true);        
    }                 
}

Nas linhas 41 e 42 tento armazenar a entrada do teclado, mas nao funciona.
quero armazenar a entrada de telcado deste "JTextField algumCampoDeTexto" na String da classe Armazena.
Alguem tem exemplo de como se faz, alguem me ajuda ?

nakai000

Boa tarde,

esse tópico é meio antigo e acho que ele ja deve ter resolvido esse problema,
mas de qualqer forma vou deixar resolvido aqui

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class SwingExemplo1 extends JFrame {
	JPanel panel;
	JLabel msg;
	JTextField algumCampoDeTexto;
	JButton botaoAdicionar;
	JPanel botao;

	public SwingExemplo1() {
		super("Titulo da Janela");
	}

	public void criaJanela() {
		
		//Declare a variavel ar final para que ela possa ser utilizada na inner-class
		final Armazena ar = new Armazena();

		panel = new JPanel();
		msg = new JLabel("Texto na janela");

		algumCampoDeTexto = new JTextField("digite algo");
		botaoAdicionar = new JButton("OK");
		botaoAdicionar.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				
				//Aqui vc pega o conteudo do JTextField e joga na string nome de ar
				ar.setNome(algumCampoDeTexto.getText()); 
				
				//Aqui vc exibe o conteudo da string no JOptionPane
				JOptionPane.showMessageDialog(null, "Texto: " + ar.getNome()); 
			}
		}
		);

		panel.add(msg);
		panel.add(algumCampoDeTexto);
		panel.add(botaoAdicionar);

		ar.setNome(algumCampoDeTexto.getText());

		getContentPane().add(panel, BorderLayout.CENTER);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		pack();
		setVisible(true);
	}

	class Armazena {
		String nome;
		int x;

		public String getNome() {
			return nome;
		}

		public void setNome(String nome) {
			this.nome = nome;
		}

		public int getX() {
			return x;
		}

		public void setX(int x) {
			this.x = x;
		}
	}

	public static void main(String args[]) {
		SwingExemplo1 s = new SwingExemplo1();
		s.criaJanela();
	}
}

Posta ai se tiver alguma duvida, Abraços

D

boa tarde.

é isso ae nakai000, eu pesquisei, testei e tentei descobrir como funcionava um monte de codigos e ontem de noite consegui descobrir. ficou assim mesmo com tu fez.

valeu pela pela dica, um abraço

Criado 13 de abril de 2011
Ultima resposta 18 de abr. de 2011
Respostas 3
Participantes 2