Oi pessoal,
Eu estou com o seguinte problema: fiz uma classe em java que chama um menu de opções onde o usuário pode digitar uma opção pra inserir ou consultar no banco de dados. Quando ele clica em uma das opções, abre uma janela pra ele poder fazer a ação desejada (inserir ou consultar os dados). O problema é que quando ele fecha essa nova janela que se abriu, a janela do menu, que ja estava aberta,aparece pra ele, possibilitando que ele digite uma outra opção. O problema é que quando ele digita uma outra opção, a nova janela não abre, ou seja, ele só pode executar uma opção por compilação.
Vou postar o codigo pra vocês verem.
package trabalhoextra;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.util.*;
public class Dados extends JFrame{
JButton botao;
JLabel l1,l2,l3,l4,l5,l6;
JTextField t1,t2,t3,t4,t5,t6;
String result;
public Dados(){
super("Menu de opções");
Container tela = getContentPane();
tela.setLayout(null);
l1 = new JLabel("1 > Inserir Pedidos ");
l2 = new JLabel("2 > Inserir Clientes ");
l3 = new JLabel("3 > Consultar Pedidos ");
l4 = new JLabel("4 > Consultar Clientes ");
l5 = new JLabel("Opção"); t1 = new JTextField(10);
l1.setBounds(20,30,150,20);
l2.setBounds(20,55,150,20);
l3.setBounds(20,80,150,20);
l4.setBounds(20,105,150,20);
l5.setBounds(20,130,60,20);t1.setBounds(60,130,50,20);
botao = new JButton("OK"); botao.setBounds(110,170,100,20);
tela.add(l1);
tela.add(l2);
tela.add(l3);
tela.add(l4);
tela.add(l5);tela.add(t1);
tela.add(botao);
botao.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try {
String url = "jdbc:odbc:BancoJava";
String usuario = "";
String senha = "";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con;
con = DriverManager.getConnection(url,usuario,senha);
if (t1.getText().equals("1")){
t1.setText("");
t1.grabFocus();
}
if (t1.getText().equals("2")){
t1.setText("");
t1.grabFocus();
InsereClientes janela2 = new InsereClientes();
janela2.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
if (t1.getText().equals("3")){
t1.setText("");
t1.grabFocus();
new ConsultaPedido();
}
if (t1.getText().equals("4")){
t1.setText("");
t1.grabFocus();
ConsultaClientes janela4 = new ConsultaClientes();
janela4.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
}
catch(Exception event) {
JOptionPane.showMessageDialog(null,"Conexão não estabelecida \nPessoa não encontrada","Mensagem do Programa",JOptionPane.ERROR_MESSAGE);
}
}});
setSize(250,270);
setVisible(true);
setLocationRelativeTo(null);
}
public static void main(String args[]){
Dados app = new Dados();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private class ConsultaClientes extends JFrame{
public ConsultaClientes(){
super("Consulta de Registro");
Container tela = getContentPane();
tela.setLayout(null);
l1 = new JLabel("Código: "); t1 = new JTextField(5);
l2 = new JLabel("CPF: "); t2 = new JTextField(50);
l3 = new JLabel("Nome: "); t3 = new JTextField(50);
l4 = new JLabel("Telefone: "); t4 = new JTextField(20);
l5 = new JLabel("Rua: "); t5 = new JTextField(50);
l6 = new JLabel("Número: "); t6 = new JTextField(5);
l1.setBounds(20,30,80,20); t1.setBounds(100,30,50,20);
l2.setBounds(20,55,80,20); t2.setBounds(100,55,150,20);
l3.setBounds(20,80,80,20); t3.setBounds(100,80,300,20);
l4.setBounds(20,105,80,20);t4.setBounds(100,105,100,20);
l5.setBounds(20,130,80,20);t5.setBounds(100,130,300,20);
l6.setBounds(20,155,80,20);t6.setBounds(100,155,50,20);
botao = new JButton("Consultar Registro"); botao.setBounds(110,190,150,20);
tela.add(l1);tela.add(t1);
tela.add(l2);tela.add(t2);
tela.add(l3);tela.add(t3);
tela.add(l4);tela.add(t4);
tela.add(l5);tela.add(t5);
tela.add(l6);tela.add(t6);
tela.add(botao);
t2.disable();
t3.disable();
t4.disable();
t5.disable();
t6.disable();
botao.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try {
String url = "jdbc:odbc:BancoJava";
String usuario = "";
String senha = "";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con;
con = DriverManager.getConnection(url,usuario,senha);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM Cliente WHERE IdCliente="+t1.getText());
rs.next();
t2.setText(rs.getString("CPF"));
t3.setText(rs.getString("Nome"));
t4.setText(rs.getString("Telefone"));
t5.setText(rs.getString("Rua"));
t6.setText(rs.getString("Numero"));
st.close();
con.close();
}
catch(Exception event) {
JOptionPane.showMessageDialog(null,"Pessoa não encontrada","Mensagem do Programa",JOptionPane.ERROR_MESSAGE);
t1.setText("");
t1.grabFocus();
}
}});
setSize(450, 295);
setVisible(true);
setLocationRelativeTo(null);
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
}
}
private class ConsultaPedido extends JFrame{
JLabel l;
JTextField t;
JButton b;
Inicial janela;
public ConsultaPedido(){
super("Consulta de Pedidos" );
Container tela = getContentPane();
setLayout(null);
l = new JLabel("Codigo do Cliente "); l.setBounds(105,20,150,20);
t = new JTextField(50); t.setBounds(120,45,50,20);
b = new JButton("Exibir Relatório"); b.setBounds(80,80,150,20);
tela.add(l);tela.add(t);tela.add(b);
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
janela = new Inicial();
janela.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
janela.setVisible(true);
}});
setSize(300,160);
setVisible(true);
setLocationRelativeTo(null);
}
private class Inicial extends JFrame{
private Connection con;
private JTable tabela;
private Inicial(){
super("Listagem de Pedidos" );
setSize(400,300);
setLocationRelativeTo(null);
String url = "jdbc:odbc:BancoJava";
String usuario = "";
String senha = "";
try{
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
con = DriverManager.getConnection(url, usuario, senha);
}
catch (Exception e){
JOptionPane.showMessageDialog(null,"Conexão não estabelecida","Mensagem do Programa",JOptionPane.ERROR_MESSAGE);
}
buscaTabela();
}
private void buscaTabela(){
Statement st;
ResultSet res;
try {
Vector cabecalho = new Vector();
Vector linhas = new Vector();
st = con.createStatement();
res = st.executeQuery("SELECT Pedidos.CodPedidos,Pedidos.DataPed,Pedidos.Valor FROM Pedidos,Cliente WHERE Pedidos.IdCliente="+t.getText());
res.next();
ResultSetMetaData rsmd = res.getMetaData();
for (int i = 1; i <= rsmd.getColumnCount(); ++i)
cabecalho.addElement(rsmd.getColumnName(i));
do
{
linhas.addElement(proximaLinha(res,rsmd));
}
while (res.next());
tabela = new JTable(linhas,cabecalho);
JScrollPane scroller = new JScrollPane( tabela );
getContentPane().add(scroller, BorderLayout.CENTER);
validate();
st.close();
}
catch (SQLException sqlex) {
}
}
private Vector proximaLinha(ResultSet rs, ResultSetMetaData rsmd ){
Vector LinhaAtual = new Vector();
try{
for (int i = 1; i <= rsmd.getColumnCount(); ++i)
switch(rsmd.getColumnType(i)){
case Types.VARCHAR: LinhaAtual.addElement(rs.getString(i));
break;
case Types.TIMESTAMP: LinhaAtual.addElement(rs.getDate(i));
break;
case Types.DOUBLE: LinhaAtual.addElement(new Long(rs.getLong(i)));
break;
case Types.INTEGER: LinhaAtual.addElement(new Long(rs.getLong(i)));
break;
}
}
catch(SQLException e) {
}
return LinhaAtual;
}
}
}
private class InsereClientes extends JFrame{
public InsereClientes(){
super("Inclusão de Cliente");
Container tela = getContentPane();
tela.setLayout(null);
l1 = new JLabel("Código: "); t1 = new JTextField(5);
l2 = new JLabel("CPF: "); t2 = new JTextField(50);
l3 = new JLabel("Nome: "); t3 = new JTextField(50);
l4 = new JLabel("Telefone: "); t4 = new JTextField(20);
l5 = new JLabel("Rua: "); t5 = new JTextField(50);
l6 = new JLabel("Número: "); t6 = new JTextField(5);
l1.setBounds(20,30,80,20); t1.setBounds(100,30,50,20);
l2.setBounds(20,55,80,20); t2.setBounds(100,55,150,20);
l3.setBounds(20,80,80,20); t3.setBounds(100,80,300,20);
l4.setBounds(20,105,80,20);t4.setBounds(100,105,100,20);
l5.setBounds(20,130,80,20);t5.setBounds(100,130,300,20);
l6.setBounds(20,155,80,20);t6.setBounds(100,155,50,20);
botao = new JButton("Inserir Registro"); botao.setBounds(110,190,150,20);
tela.add(l1);tela.add(t1);
tela.add(l2);tela.add(t2);
tela.add(l3);tela.add(t3);
tela.add(l4);tela.add(t4);
tela.add(l5);tela.add(t5);
tela.add(l6);tela.add(t6);
tela.add(botao);
botao.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try {
String url = "jdbc:odbc:BancoJava";
String usuario = "";
String senha = "";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con;
con = DriverManager.getConnection(url,usuario,senha);
Statement st = con.createStatement();
st.execute("INSERT INTO Cliente Values("+t1.getText()+",'"+t2.getText()+"','"+t3.getText()+"',"+t4.getText()+",'"+t5.getText()+"',"+t6.getText()+")");
st.close();
con.close();
}
catch(Exception event) {
JOptionPane.showMessageDialog(null,"Erro ao Inserir Registro","Mensagem do Programa",JOptionPane.ERROR_MESSAGE);
t1.grabFocus();
}
}});
setSize(450, 295);
setVisible(true);
setLocationRelativeTo(null);
}
}
}