2013-07-31 13 views
5

Pracuję nad moim pierwszym projektem Java na komputery stacjonarne. Mam 2 pytania faktycznieJak wykonać operację na OK z JOptionPane.showMessageDialog

1) Jak wykonać akcję na przycisku OK JOptionPane.showMessageDialog.A chcę przejść do nowego Jframe powiedzieć x.java na klikając OK.

2) Mam tabelę o nazwie jako użytkownik. Ta tabela ma 8 kolumn userid (klucz podstawowy), nazwę, hasło, emailid, dob, mobileno, miasto, datę. Wpisujemy cztery wpisy kolumn z Jframe x, a pozostałe cztery z innych Jframe y.

Napisałem następujący kod

dla ramki X

PreparedStatement stm = con.prepareStatement("insert into user 

(userrid,name,password,emailid))values (?,?,?,?) "); 

     stm.setString(1,id); // id is a public variable 
     stm.setString(2,name); 
     stm.setString(3,ps); 
     stm.setString(4,email); 
    stm.executeUpdate(); 

I Rama Y. (userid jest klucz podstawowy)

public class Y extends javax.swing.JFrame 
{ 
    X o = new X(); // to access id variable from frame X 

} 



PreparedStatement stm = con.prepareStatement(" update user set dob ='? ', mobileno 
='?' ,city='?', date='?' where userid= 'o.id' "); 

Utrzymuje rzucanie wyjątki dla powyższego zapytania sql

Wyjaśnienie java.sql.SQLException: indeks parametru poza zakresem (1> liczba pa rameters, czyli 0).

Odpowiedz

11

1) Jak wykonać czynność na przycisku OK JOptionPane.showMessageDialog. Chcę przejść do nowej Jframe, powiedz X.java, klikając OK.

int input = JOptionPane.showOptionDialog(null, "Hello World", "The title", JOptionPane.OK_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE, null, null, null); 

if(input == JOptionPane.OK_OPTION) 
{ 
    // do something 
} 
0

showMessageDialog nie zwraca wartość, więc każdy musi się odbywać w innym JOptionPane. Ten w powyższej odpowiedzi jest dobrym przykładem.

Dodając do powyższej odpowiedzi, jeśli wejście int jest równe OK_OPTION, możesz wywołać dispose() w bieżącej ramce (jeśli przechodzisz z jednego do drugiego bez zachowania oryginału), a następnie utworzyć nowe wystąpienie żądana ramka.

1

utrzymuje generowania wyjątków dla powyższego zapytania SQL

java.sql.SQLException: wskaźnik parametr poza zakresem (1> liczby parametrów, który jest 0).

To dlatego, że używasz '?' w zestawieniu aktualizacji, a ' nie jest potrzebny. należy przepisać następująco (przy założeniu, że prawidłowo ustawiania parametrów):

PreparedStatement stm = con.prepareStatement("UPDATE user SET dob = ?, mobileno = ?, city = ?, date = ? where userid= 'o.id' "); 
+0

Tak głupia pomyłka !! Zrozumiałem to później. Dzięki :) – Malwaregeek

0

Oto mój kod przed zamknięciem mój program java, i to działa. Na no_option program nadal działa, ale musisz ustawić domyślnącloseoperation swojej ramki na: setDefaultCloseOperation (JFrame.DO_NOTHING_ON_CLOSE);

int dialogResult = JOptionPane.showConfirmDialog(frame, "Are you sure to close this window?", "Really Closing me?",JOptionPane.OK_CANCEL_OPTION); 
      if (dialogResult==0){ 
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        try{ 
        myDBExecuter.closeConnection(); 
        myDBExecutero.closeConnection(); 
        }catch(Exception e){ 
         JOptionPane.showMessageDialog(null,new JTextField(" GoodBye :(")); 
        } 
        System.exit(0); 
      }else contentPane.updateUI();//after else can you put what you want als alternative 
Powiązane problemy