Boa tarde, meu nome é Amil, sou iniciante no fórum e estou aprendendo programar em Java, gostaria de pedir ajuda para resolver um problema em um programa que pretendo fazer, pois já fiz uma linha de código e esta copilando normalmente coma ferramenta eclipse. Porém gostaria de mudar a parte grafica em relação ao norte, ou seja, onde estão os dados que serão inseridos no arquivo de cadastro. Queria que quando clickar no botão cadastrar, abrisse uma segunda janela em que eu pudesse colocar esses dados dentro da janela e que fosse salvo em banco de dados. Estou enviando o programa completo desenvolvido com a ferramenta Eclipse.
import javax.swing.<em>;
import java.awt.</em>;
import java.awt.event.<em>;
import java.sql.</em>;
import <a href="http://java.io">java.io</a>.<em>;
import com.hxtt.sql.</em>;
public class Cadastro extends JFrame implements ActionListener{
//Campos
JTextField txtNome = new JTextField (25);
JTextField txtEndereco = new JTextField (25);
JTextField txtEmail = new JTextField (20);
JTextField txtFone = new JTextField ("",12);
JTextField txtCIC = new JTextField ("",14);
JTextField txtRg = new JTextField ("",12);
JTextArea txtResultado = new JTextArea("<<<< Resultados das ações >>>>");
//Botoes
JButton btCadastra = new JButton ("Cadastrar");
JButton btLimpa = new JButton ("Limpar");
JButton btElimina = new JButton ("Eliminar");
JButton btPesquisa = new JButton ("Pesquisa");
JButton btAltera = new JButton ("Alterar");
//Grids de Layout
GridLayout grid1 = new GridLayout(6,2);
GridLayout grid2 = new GridLayout(1,5);
GridLayout grid3 = new GridLayout(1,1);
//Labels
JLabel lbNome = new JLabel ("Nome:");
JLabel lbEndereco = new JLabel ("Endereço:");
JLabel lbEmail = new JLabel ("Email:");
JLabel lbFone = new JLabel ("Telefone:");
JLabel lbCIC = new JLabel ("CIC:");
JLabel lbRg = new JLabel ("RG:");
//Painel
JPanel painel1 = new JPanel();
JPanel painel2 = new JPanel();
JPanel painel3 = new JPanel();
public Cadastro(){
super("Cadastro de Cliente - Manipulando DBF");
setSize(400,260);
setLocation(360,160);
lbCIC.setToolTipText("Chave de Pesquisa");
txtResultado.setSize(10,15);
txtResultado.setEditable(false);
txtResultado.setLineWrap(true);
btCadastra.addActionListener(this);
btLimpa.addActionListener(this);
btElimina.addActionListener(this);
btPesquisa.addActionListener(this);
btAltera.addActionListener(this);
painel1.add(lbNome);
painel1.add(txtNome);
painel1.add(lbEndereco);
painel1.add(txtEndereco);
painel1.add(lbEmail);
painel1.add(txtEmail);
painel1.add(lbFone);
painel1.add(txtFone);
painel1.add(lbCIC);
painel1.add(txtCIC);
painel1.add(lbRg);
painel1.add(txtRg);
//painel2.add(new JScrollPane(txtResultado));
painel2.add(txtResultado);
painel3.add(btCadastra);
painel3.add(btLimpa);
painel3.add(btPesquisa);
painel3.add(btAltera);
painel3.add(btElimina);
painel1.setLayout(grid1);
painel2.setLayout(grid2);
painel3.setLayout(grid3);
getContentPane().add(painel1,BorderLayout.NORTH);
getContentPane().add(painel2,BorderLayout.CENTER);
getContentPane().add(painel3,BorderLayout.SOUTH);
}
/**
* @docRoot Método para seleção (SELECT)
*/
public ResultSet selecao(String comando){
ResultSet rs = null;
try {
//Registrar o Driver JDBC do banco de dados, neste caso estou usando o DBF
String conexao = "com.hxtt.sql.dbf.DBFDriver";
//Carrega o Driver a ser utilizado
Class.forName(conexao).newInstance();
//Indica o caminho do arquivo
//eX.: C:\J2SDK1.4.1\BIN\
String caminho = "E:/TABELAS/.";
// String de conexao para o DBF
String url = "jdbc:DBF:/" + caminho;
//Faz um SELECT no arquivo
String sql = comando;
//OBS.: Não coloque a extensão do arquivo, deixe sem .DBF
//Abre uma conexão com o arquivo
Connection conn = DriverManager.getConnection(url);
// recuperar a classe Stamtemant a partir da conexao criada
Statement stmt = conn.createStatement();
//Retorna o resultado da Query
rs = stmt.executeQuery(sql);
//Pegar o valor da(s) coluna(a) já no tipo desejado String, int, Date, etc...
while (rs.next()) {
txtNome.setText((String) rs.getString("Nome"));
txtEndereco.setText((String) rs.getString("Endereco"));
txtFone.setText((String) rs.getString("Fone"));
txtEmail.setText((String) rs.getString("Email"));
txtCIC.setText((String) rs.getString("Cic"));
txtRg.setText((String) rs.getString("Rg"));
}
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
//System.out.println("Oops-> " + e);
txtResultado.setText("Oops-> " + e);
}
return rs;
}
/**
* @docRoot Método para Update da Tabela (INSERT, DELETE)
*/
public int insercao(String comando){
int rs = 0;
try {
//Registrar o Driver JDBC do banco de dados, neste caso estou usando o DBF
String conexao = "com.hxtt.sql.dbf.DBFDriver";
//Carrega o Driver a ser utilizado
Class.forName(conexao).newInstance();
//Indica o caminho do arquivo
//eX.: C:\J2SDK1.4.1\BIN\
String caminho = "E:/";
// String de conexao para o DBF
String url = "jdbc:DBF:/E:/TABELAS/."; //+ caminho;
//Faz um SELECT no arquivo
String sql = comando;
//OBS.: Não coloque a extensão do arquivo, deixe sem .DBF
//Abre uma conexão com o arquivo
Connection conn = DriverManager.getConnection(url);
// recuperar a classe Stamtemant a partir da conexao criada
Statement stmt = conn.createStatement();
//Retorna o resultado da Query
rs = stmt.executeUpdate(sql);
//Pegar o valor da(s) coluna(a) já no tipo desejado String, int, Date, etc...
stmt.close();
conn.close();
} catch (Exception e) {
//System.out.println("Oops-> " + e);
txtResultado.setText("Oops-> " + e);
}
return rs;
}
public void actionPerformed(ActionEvent e){
if (e.getSource() == btCadastra){
String comando = ("Insert into cliente (nome, endereco, fone, email, cic, rg) " +
"values ('" + txtNome.getText() + "','" + txtEndereco.getText()+ "','"
+ txtFone.getText() + "','" + txtEmail.getText()+ "','" + txtCIC.getText()
+ "','" + txtRg.getText()+"')");
int rs = insercao(comando);
//System.out.println("Executado: " + comando);
txtResultado.setText("Executado: " + comando);
if (rs==1)
Limpar();
else
System.out.println("ERRO: Não foram gravadas as informações, verifique.");
}else{
if (e.getSource() == btPesquisa){
String comando = ("Select * from Cliente where (CIC='" + txtCIC.getText()+"')");
ResultSet rs = selecao(comando);
//System.out.println("Executado: " + comando);
txtResultado.setText("Executado: " + comando);
try{
if (rs.wasNull()== true)
//System.out.println("ERRO: Não foi encontrado registro do CIC: " + txtCIC.getText() + ", verifique.");
txtResultado.setText("ERRO: Não foi encontrado registro do CIC: " + txtCIC.getText() + ", verifique.");
}catch(Exception erro){
//System.out.println("ERRO: NÃO INDETIFICADO.");
txtResultado.setText("ERRO: NÃO INDETIFICADO.");
}
}else{
if (e.getSource() == btElimina){
String comando = ("Delete from Cliente where (CIC='" + txtCIC.getText()+"')");
int rs = insercao(comando);
//System.out.println("Executado: " + comando);
txtResultado.setText("Executado: " + comando);
if (rs==1)
Limpar();
else
System.out.println("ERRO: Não foram deletadas as informações, verifique.");
}else{
if (e.getSource() == btAltera){
String comando = ("Update cliente SET nome='" + txtNome.getText()
+ "',endereco='" + txtEndereco.getText()
+ "',fone='" + txtFone.getText()
+ "',email='" + txtEmail.getText()
+ "',cic='" + txtCIC.getText()
+ "',rg='" + txtRg.getText()+ "' where (CIC='" + txtCIC.getText()+"')");
int rs = insercao(comando);
Limpar();
//System.out.println("Executado: " + comando);
txtResultado.setText("Executado: " + comando);
}else{
if (e.getSource() == btLimpa){
Limpar();
txtResultado.setText("<<<< Resultados das ações >>>>");
}
}
}
}
}
}
/*
* Limpa os dados do JFrame Cadastro
*/
public void Limpar(){
txtNome.setText("");
txtEndereco.setText("");
txtEmail.setText("");
txtFone.setText("");
txtCIC.setText("");
txtRg.setText("");
txtNome.requestFocus();
}
public static void main (String args[]){
Cadastro c = new Cadastro();
c.setVisible(true);
c.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Obrigado, aguardo resposta!!!