Botão

24 respostas
V

Olá!
Estou fazendo um sistema de cadastro,
gostaria de saber como fazer para quando eu clicar no botão salvar ele pegar o que eu digitei no JTextField.
Obrigado.

24 Respostas

E

O JTextField tem o metodo getText() q retorna como uma String o q foi digitado. Segue a API http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JTextField.html

Falos.

V

Vlw eder…
ainda nao consegui
tipow eu crie um JFrame com o JTextField…
e um botão Salvar …
eu não sei como usar o metodo getText() dentro do ActionPerformed…
se puder me ajudar vlw …

R

dá uma olhada, vê se ajuda...

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JTextField;

public class MyFrame extends JFrame implements ActionListener {

	private JLabel _lbTitulo = null;
	private JButton _btnAlterarTitulo = null;
	private JButton _btnMostrarCampo = null;
	private JTextField _txtCampo = null;

	public MyFrame() {
		setTitle("Exemplo");
		setSize(200, 200);
		setLocation(400, 300);
		getContentPane().add(getPanelComponents());
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	private JPanel getPanelComponents() {
		
		GridBagLayout layout = new GridBagLayout();
		JPanel panel = new JPanel(layout);
		
		GridBagConstraints c = new GridBagConstraints();
		c.insets = new Insets(5,5,5,5);
		
		_lbTitulo = new JLabel("Título");
		
		c.gridx = 0;
		c.gridy = 0;
		panel.add(_lbTitulo,c);
		
		c.gridx = 0;
		c.gridy = 1;
		panel.add(getButtonAlterarTitulo(),c);
		
		c.gridx = 0;
		c.gridy = 2;
		panel.add(getTextFieldCampo(),c);
		
		c.gridx = 0;
		c.gridy = 3;
		panel.add(getButtonMostrarCampo(),c);
		
		return panel;
	}

	private JButton getButtonAlterarTitulo() {
		if (_btnAlterarTitulo == null) {
			_btnAlterarTitulo = new JButton("Alterar Título");
			_btnAlterarTitulo.setName("btnAlterarTitulo");
			_btnAlterarTitulo.addActionListener(this);
		}
		return _btnAlterarTitulo;
	}
	
	private JButton getButtonMostrarCampo() {
		if (_btnMostrarCampo == null) {
			_btnMostrarCampo = new JButton("Mostrar Campo");
			_btnMostrarCampo.setName("btnMostrarCampo");
			_btnMostrarCampo.addActionListener(this);
		}
		return _btnMostrarCampo;
	}
	
	private JTextField getTextFieldCampo(){
		if (_txtCampo== null){
			_txtCampo = new JTextField(10);
			_txtCampo.setName("txtCampo");
		}
		return _txtCampo;
	}

	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == _btnAlterarTitulo) {
			String str = JOptionPane.showInputDialog("Entre com o novo tútulo: ");
			_lbTitulo.setText(str);
		}
		
		if (e.getSource() == _btnMostrarCampo) {
			JOptionPane.showMessageDialog(this,_txtCampo.getText());
		}
	}
	
	
	public static void main(String[] args){
		MyFrame fr = new MyFrame();
	}
}
V

Vlw Rodrigo…
Eu usei aquela janela pronta do JFrame sabe?
que tem q ir em new, JFrame …e adidionei o botão por lá
a implementação dos botões é = ?
eu to meio perdido…
nao sei mta coisa …

/** Creates new form Cadastro */

public Cadastro() {

initComponents();

}
  • Generated Code
private void SalvarActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

aqui q tenho q implementar o que vai acontecer qnd eu clicar no botão Salvar ??

F

Sim...

Ficaria +/- assim:

/** Creates new form Cadastro */ 
public Cadastro() { 
initComponents(); 
} 

+ Generated Code 

private void SalvarActionPerformed(java.awt.event.ActionEvent evt) { 
// TODO add your handling code here: 
// Recuperar informação do Campo TextArea
String texto = textarea.getText();
// E depois a ação que o botão vai fazer...
System.out.println("Você digitou: " + texto);
V

ah sim …
vlw …
tipow eu nao usei textarea …
eu tenho q substituir … ??
pelo q ?

V

se tiver um text nome eu uso assim ?
String texto = Nome.getText();

E

Veneno, podes ter, por exemplo, um JTextFild como variavel de instancia logo poderia acessa o texto dele dentro do metodo SalvarActionPerformed.
Ex:
JTextField jTF = new JTextField();

private void SalvarActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

// Recuperar informação do Campo TextArea

String texto = jTF.getText();

// E depois a ação que o botão vai fazer…

System.out.println("Você digitou: " + texto);

}

Espero q teja + claro, ok?
Falos.

V

ah sim …
fikou mto mais claro veio …=]]
brigadão … :thumbup:

V

vixii…
eu nao conseguindo …
como eu declaro essa variavel?
por ela eu poderia acessar todos os JTextField ?

E

\vixii…
\eu nao conseguindo …
\como eu declaro essa variavel?

Declara como varial de instancia (fora dos metodos :slight_smile: ), assim

JTextField jTF = new JTextField();

\por ela eu poderia acessar todos os JTextField ?

Na verdade só vai acessa a variavel q tu explicitamente tiver chamando, tipo:
jTF.getText();
Só vai acessa jTF.
Era isso?
Falos.

V

ah sim rs… entendi …
era isso msm rs… vlw eder :wink:

V

Olá alguem saberia se esse comando guarda no banco o nome que eu digitar no JtextField ??

[code]private void SalvarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String nome = "";

if((nome != null) && (!nome.equals(""))) {
Cliente cn = new Cliente(nome);
new Banco().setDados(cn);

}
}

vlw :wink:

E

Veneno, de onde vem a classe banco? posta o codigo.
Falos.

V

ok …

V
Ok eu tenho a classe banco
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;


public class Banco {
    
    private ConectaDB conectadb = new ConectaDB();
    private PreparedStatement ps;
    private ResultSet rs;
    private Connection connection;
    private boolean conn;
   
  
       
    
    
    
    
    public Banco(){
        conn = conectadb.setConnection();
        connection = conectadb.getConnection();
    }
    
	
    public void setDados(Cliente c){
        if(conn){
        	if(connection != null){
        		try{
                            ps = connection.prepareStatement("insert into Cliente(nome) values(?,?,?,?,?,?,?,?,?,?)");
                            ps.setString(1,c.getNome());
                            ps.executeUpdate();                            
                            
                        }
                        catch(SQLException e){
        			System.out.println(e.getMessage());
        		}
        	}        
        }		
    }
ah classe Cliente
public class Cliente {
   
   String nome;
   
   
   public Cliente(String nome){
       this.nome = nome;
   }
   
            
   
    public String getNome(){
        return nome;
    }
   public void setNome(String nome){
       this.nome = nome;
   } 

        
    
}
ConectaDb
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConectaDB {
	   private Connection connection;  

	   public boolean setConnection(){
	        try{
	          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
	          connection = DriverManager.getConnection("jdbc:odbc:Banco","","");
	          if(connection != null){
	        	  return true;	          
	          }else{
	        	  return false;          
	          }
	        }
	        catch (ClassNotFoundException e){
	          return false;
	        }
	        catch (SQLException e){
	          return false;
	        }
	     }

	    public Connection getConnection(){
		  try { 
		      return connection;
	      }
		  catch(Exception ex){
		      ex.printStackTrace();
		      return null;
		  }
		}

	    public void stopConnection(){
	        try{
	            connection.close();
	        }
	        catch(Exception e){
	            e.printStackTrace();
	        } 
	    }
}

Aqui a Tela com o Botão ... que eu queria q guardasse no banco ...

public class Cadastro extends javax.swing.JFrame {
    
    /** Creates new form Cadastro */
    public Cadastro() {
        initComponents();
       
    }
 /
 private void SalvarActionPerformed(java.awt.event.ActionEvent evt) {                                       
// TODO add your handling code here:
   
       
       String texto = Nome1.getText();
//Assim não ta funcionado       

       
       if((Nome1 != null) && (!Nome1.equals(""))) {
            Cliente cn = new Cliente(Nome1.getText());
            new Banco().setDados(cn);
     
    }                                      
   }

vlw galera ...
se alguem souber ... da uma dica aí

E

Veneno, o metodo setDados(Cliente c) da classe Banco insere o nome do cliente na tabela Cliente. Qd se faz “ps.setString(1,c.getNome());” tu estais inserindo o valor referente àqle primeiro ponto de interrogacao, ve isso na API do PreparedStatement ( http://java.sun.com/j2se/1.3/docs/api/java/sql/PreparedStatement.html ). Qq duvida sempre consulta a API dessas classes bases pra realizar, gerenciar a conexao com o BD.

V

não da certo desse jeito neh ?
vixii não to entendo… eu tenho q colocar oq la no botão pra inserir o nome q eu digitar no banco ?
vlw

V

Eai pessoal …
eu to conseguindo guardar os dados no banco …
como eu faço pra pegar de lá e mostrar em um JTextArea?
append não dá neh ??

eu tava fzndo ± assim mas não ta dando certo :

String nome,aux;
        Banco banco = new Banco();

        Cliente cn = new Cliente(nome);                    
                aux = banco.getDados1(cn);   

...

aí se alguem souber …vlw

S

É assim mesmo …

Porem … vc precisa criar outro botão com outro evento e no seu PrepareStatement vc precisa mudar o comando SQL de “INSERT” para “SELECT”, e mudar também de ps.executeUpdate para ps.executeQuery( );.

ps = connection.prepareStatement("insert into Cliente(nome) values(?,?,?,?,?,?,?,?,?,?)");
                             ps.setString(1,c.getNome());
                             ps.executeUpdate();

Tenta ai qualquer coisa vc fala

V

ta dando um erro pq tem o void …
eu não sei como resolver isso …
ta assim

String nom, aux;
        Banco banco = new Banco();
        
        nom = JOptionPane.showInputDialog("Procura por Nome.");
        if(nom != null){
            if((!nom.equals(""))){
                Cliente cl = new Cliente(nom);                    
                aux = banco.getDados(cl);  
                
                if(!aux.equals("")){
                    Resultado.setVisible(true);        
                            
                    Resultado.setText(aux); 
                }else{
                    JOptionPane.showMessageDialog(null,"Não há registro na Base de dados que correspondem a sua busca, por favor tente novamente.");
                }
            }else{
                JOptionPane.showMessageDialog(null,"Nenhuma entrada foi adicionada à procura.");
            }
        }
}
V

alguem sabe ?
por favor …
Obrigado

V

eai galera …

public String getDados1(Cliente c){ //verifica o nome
            String aux = "";
            if(conn){
        	if(connection != null){
        		try{	
                            ps = connection.prepareStatement("select * from Cliente WHERE nome LIKE (?)");        			
                            ps.setString(1,"%" + c.getNome() + "%");                            
                            rs = ps.executeQuery();
                            while(rs.next()){
                                aux += (rs.getString("Nome") );       			
                            }        		
                        }catch(SQLException e){
        			System.out.println(e.getMessage());
                                System.out.println("Ocorreu um erro na leituta do registro.");
        		}
        	}       
            }
            return aux;
        }

o codigo acima ta bleza …
tipo no access ele ta buscando por nome blezinha …
eu troquei pro SQL Server … ta dando q não tem o registro …
será Q alguem saberia pq…???
vlw

V

puts ninguem sabe se o SQL Server tem alguma particalaridade???

Criado 19 de setembro de 2006
Ultima resposta 27 de out. de 2006
Respostas 24
Participantes 5