2016-01-19 3 views
0

Привет всем Я новичок в java, и я пытаюсь запустить этот Java-код, но по какой-то причине он не показывает мне ошибки в моей консоли Eclipse. У этого есть синтаксическая ошибка при этом линия:система входа с доступом

b.addActionListener (new ActionListener() { 

Я перепробовал все предложения, и я не получил где-нибудь .. Я знаю, что это что-то простое, но я никогда не имел консоль, прежде чем не показывает никаких ошибок. Спасибо за любую помощь!

import javax.swing.*; 
import java.awt.event.*; 
import java.sql.*; 

public class Loging { 
Connection con; 
Statement st; 
ResultSet rs; 

JFrame f = new JFrame("User Login"); 
JLabel l = new JLabel("Username"); 
JLabel l1 = new JLabel("password"); 
JTextField t = new JTextField(10); 
JTextField t1 = new JTextField(10); 
JButton b = new JButton("Login"); 

public static void main(String[] args) { 
    // TODO Auto-generated method stub 
} 

public void Loging1() { 
    connect(); 
    frame(); 
} 

public void connect() { 
    try { 
     String driver = "sun.jdbc.odbc.JdbcOdbcDriver";// Driver needed for 
                 // connection 
     Class.forName(driver);// Class.forName(driver); 

     String db = "jdbc:odbc:db1"; 
     con = DriverManager.getConnection(db); 
     st = con.createStatement(); 

    } catch (Exception ex) { 

    } 

} 

public void frame() 
     { 
      f.setSize (600,400); 
      f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      f.setVisible(true); 

      JPanel p = new JPanel(); 
      p.add(l); 
      p.add(t); 
      p.add(l1); 
      p.add(t1); 
      p.add(b); 

      f.add(p); 
      b.addActionListener (new ActionListener() { 


      } 

public void actionPerformed(ActionEvent e) { 
    try { 
     String user = t.getText().trim(); 
     String pass = t1.getText().trim(); 

     String sql = "select user, pass from Table1 where user = '" + user 
       + "'and pass = '" + pass + "'";// for sql query 
     // String sql = 
     // "select user, pass from Table1 where user = '"+user+"'pass = '"+pass+"'"; 
     // Getting the fields user and pass checks tthat both are equal to 
     // each orther 
     rs = st.executeQuery(sql);// executes query 

     int count = 0;// cont the rows for the query 
     while (rs.next()) { 
      count = count + 1;// if no rows are returned then no user exist, 
           // if count is = to 1 then user exist } 
     } 

     if (count == 1)// if = to 1 user exist 
     { 
      JOptionPane.showMessageDialog(null, "Logged in!"); 
     } else if (count > 1)// if more that one 
     { 
      JOptionPane.showMessageDialog(null, "Duplicate user, DENIED!"); 
     } 

     else { 
      JOptionPane.showMessageDialog(null, "user not found"); 
     } 

    } catch (Exception ex) { 

    } 
    // public static void main(String[] args) { 

} 
// New Loging1(); 
} 
+0

Annnnd ... что не работает? – MadProgrammer

+0

«JdbcOdbcDriver» был обесценен, и вы не должны его использовать. Что-то вроде [UCanAccess] (http://ucanaccess.sourceforge.net/site.html) может быть более подходящим решением, но вам нужно будет провести некоторое исследование – MadProgrammer

+1

Можете ли вы иметь формат Eclipse, чтобы он выглядел приятнее ? – jacob

ответ

2

Это ...

b.addActionListener (new ActionListener() { 

} 

собирается дать вам ошибку компиляции, потому что вы не в состоянии fufil требованиям интерфейса ActionListener, а именно реализации метода actionPerformed.

Что-то больше похоже на ...

import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.Statement; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JOptionPane; 
import javax.swing.JPanel; 
import javax.swing.JTextField; 

public class Loging { 

    Connection con; 
    Statement st; 
    ResultSet rs; 

    JFrame f = new JFrame("User Login"); 
    JLabel l = new JLabel("Username"); 
    JLabel l1 = new JLabel("password"); 
    JTextField t = new JTextField(10); 
    JTextField t1 = new JTextField(10); 
    JButton b = new JButton("Login"); 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
    } 

    public void Loging1() { 
     connect(); 
     frame(); 
    } 

    public void connect() { 
     try { 
      String driver = "sun.jdbc.odbc.JdbcOdbcDriver";//Driver needed for connection 
      Class.forName(driver);// Class.forName(driver); 

      String db = "jdbc:odbc:db1"; 
      con = DriverManager.getConnection(db); 
      st = con.createStatement(); 

     } catch (Exception ex) { 

     } 

    } 

    public void frame() { 
     f.setSize(600, 400); 
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     f.setVisible(true); 

     JPanel p = new JPanel(); 
     p.add(l); 
     p.add(t); 
     p.add(l1); 
     p.add(t1); 
     p.add(b); 

     f.add(p); 
     b.addActionListener(new ActionListener() { 

      public void actionPerformed(ActionEvent e) { 
       try { 
        String user = t.getText().trim(); 
        String pass = t1.getText().trim(); 

        String sql = "select user, pass from Table1 where user = '" + user + "'and pass = '" + pass + "'";//for sql query 
        //String sql = "select user, pass from Table1 where user = '"+user+"'pass = '"+pass+"'"; 
        //Getting the fields user and pass checks tthat both are equal to each orther 
        rs = st.executeQuery(sql);//executes query 

        int count = 0;//cont the rows for the query 
        while (rs.next()) { 
         count = count + 1;//if no rows are returned then no user exist, if count is = to 1 then user exist    } 
        } 

        if (count == 1)//if = to 1 user exist 
        { 
         JOptionPane.showMessageDialog(null, "Logged in!"); 
        } else if (count > 1)//if more that one 
        { 
         JOptionPane.showMessageDialog(null, "Duplicate user, DENIED!"); 
        } else { 
         JOptionPane.showMessageDialog(null, "user not found"); 
        } 

       } catch (Exception ex) { 

       } 
       //public static void main(String[] args) { 

      } 
      // New Loging1(); 
     }); 
    } 
} 

, по крайней мере, компилировать (извините, там были какие-то другие вопросы форматирования я не хочу, чтобы попасть в)

Вы также должны знать, как использовать PreparedStatements см. Using Prepared Statements для более подробной информации, они, как правило, более гибкие и безопасные.

JdbcOdbcDriver был обесценен, и вы не должны его использовать. Что-то вроде UCanAccess может быть более подходящим решением, но вы должны сделать некоторые исследования

Вы могли бы также посмотреть на How to Write an Action Listeners и Nested Classes

Смежные вопросы