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.
Botão
24 Respostas
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.
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 …
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();
}
}
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 ??
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);
ah sim …
vlw …
tipow eu nao usei textarea …
eu tenho q substituir … ??
pelo q ?
se tiver um text nome eu uso assim ?
String texto = Nome.getText();
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.
ah sim …
fikou mto mais claro veio …=]]
brigadão … :thumbup:
vixii…
eu nao conseguindo …
como eu declaro essa variavel?
por ela eu poderia acessar todos os JTextField ?
\vixii…
\eu nao conseguindo …
\como eu declaro essa variavel?
Declara como varial de instancia (fora dos metodos
), 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.
ah sim rs… entendi …
era isso msm rs… vlw eder 
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:
Veneno, de onde vem a classe banco? posta o codigo.
Falos.
ok …
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());
}
}
}
}
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;
}
}
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í
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.
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
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
É 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
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.");
}
}
}
alguem sabe ?
por favor …
Obrigado
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
puts ninguem sabe se o SQL Server tem alguma particalaridade???