📄 登录.java~35~
字号:
package untitled3;
import java.awt.*;
import javax.swing.*;
//import com.borland.dbswing.*;
//import com.borland.dx.sql.dataset.*;
import java.awt.event.*;
import java.sql.*;
import java.util.*;
import java.security.interfaces.*;
import java.math.*;
import java.io.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2001</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class 登录 extends JDialog {
Vector item=new Vector();
ImageIcon icon1;
JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JLabel jLabel3 = new JLabel();
JLabel jLabel4 = new JLabel();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JTextField jTextField1 = new JTextField();
JPasswordField jPasswordField1 = new JPasswordField();
// JdbComboBox jdbComboBox1 = new JdbComboBox();
// Database database1 = new Database();
// QueryDataSet queryDataSet1 = new QueryDataSet();
private int counter=0;
private int counter1=0;
private int max;
private int flag=0;
Connection con=null;
ResultSet rs=null;
PreparedStatement ps=null;
Statement stmt;
Connection connection;
Statement statement;
public String operator,password,right,mode;
private int length=0;
String cs;
JComboBox jComboBox1 = new JComboBox(item);
JLabel jLabel5 = new JLabel();
//Database database2 = new Database();
//Database database3 = new Database();
//QueryDataSet queryDataSet2 = new QueryDataSet();
public 登录(Frame frame, String title, boolean modal) {
super(frame, title, modal);
try {
jbInit();
pack();
}
catch(Exception ex) {
ex.printStackTrace();
}
}
public 登录() {
this(null, "", false);
}
private void jbInit() throws Exception {
icon1=new ImageIcon("img1.jpg");
jComboBox1.setFont(new java.awt.Font("Dialog", 0, 15));
jLabel5.setBounds(new Rectangle(0, 0, 497, 362));
jLabel5.setIcon(icon1);
jLabel5.setText("");
item.add("学生");
item.add("老师");
item.add("管理员");
jLabel1.setFont(new java.awt.Font("隶书", 1, 40));
jLabel1.setText("学生信息管理系统");
jLabel1.setBounds(new Rectangle(101, 56, 348, 55));
this.getContentPane().setLayout(null);
jLabel2.setFont(new java.awt.Font("隶书", 1, 20));
jLabel2.setToolTipText("");
jLabel2.setText("用户:");
jLabel2.setBounds(new Rectangle(109, 118, 127, 43));
jLabel3.setFont(new java.awt.Font("隶书", 1, 20));
jLabel3.setText("密码:");
jLabel3.setBounds(new Rectangle(107, 166, 120, 40));
jLabel4.setFont(new java.awt.Font("隶书", 1, 20));
jLabel4.setText("类型:");
jLabel4.setBounds(new Rectangle(105, 216, 93, 31));
jButton1.setBounds(new Rectangle(232, 281, 94, 30));
jButton1.setFont(new java.awt.Font("Dialog", 0, 20));
jButton1.setText("登录");
jButton1.addActionListener(new 登录_jButton1_actionAdapter(this));
jButton2.setBounds(new Rectangle(335, 280, 92, 31));
jButton2.setFont(new java.awt.Font("Dialog", 0, 20));
jButton2.setText("退出");
jButton2.addActionListener(new 登录_jButton2_actionAdapter(this));
jTextField1.setFont(new java.awt.Font("Dialog", 0, 20));
jTextField1.setText("");
jTextField1.setBounds(new Rectangle(190, 122, 150, 33));
jPasswordField1.setText("");
jPasswordField1.setBounds(new Rectangle(190, 171, 152, 31));
jComboBox1.setEnabled(true);
max=(int)(Math.random()*7)+3;
// System.out.print(max);
/*
jdbComboBox1.setEnabled(true);
jdbComboBox1.setFont(new java.awt.Font("Dialog", 0, 15));
jdbComboBox1.setLocale(java.util.Locale.getDefault());
jdbComboBox1.setAutoscrolls(false);
jdbComboBox1.setDebugGraphicsOptions(0);
jdbComboBox1.setDoubleBuffered(false);
jdbComboBox1.setMinimumSize(new Dimension(73, 26));
jdbComboBox1.setOpaque(true);
jdbComboBox1.setPreferredSize(new Dimension(73, 26));
jdbComboBox1.setRequestFocusEnabled(true);
jdbComboBox1.setToolTipText("");
jdbComboBox1.setActionCommand("comboBoxChanged");
jdbComboBox1.setEditable(false);
jdbComboBox1.setLightWeightPopupEnabled(true);
jdbComboBox1.setMaximumRowCount(8);
jdbComboBox1.setPopupVisible(false);
jdbComboBox1.setDataSet(queryDataSet1);
jdbComboBox1.setDropDownWidth(-1);
jdbComboBox1.setFixedCellHeight(-1);
jdbComboBox1.setItems(new String[] {"学生", "老师", "管理员"});
jdbComboBox1.setSelectedIndex(0);
jdbComboBox1.setBounds(new Rectangle(146, 181, 153, 31));
*/
jComboBox1.setBounds(new Rectangle(190, 216, 153, 30));
this.getContentPane().add(jButton2, null);
this.getContentPane().add(jButton1, null);
this.getContentPane().add(jComboBox1, null);
this.getContentPane().add(jLabel4, null);
this.getContentPane().add(jPasswordField1, null);
this.getContentPane().add(jLabel3, null);
this.getContentPane().add(jTextField1, null);
this.getContentPane().add(jLabel1, null);
this.getContentPane().add(jLabel2, null);
this.getContentPane().add(jLabel5, null);
// this.getContentPane().add(jdbComboBox1, null);
}
void cancel() {
dispose();
}
void jButton2_actionPerformed(ActionEvent e) {
System.exit(0);
}
//////////////////////登录/////////////////////
void jButton1_actionPerformed(ActionEvent e) {
String str2=jPasswordField1.getText().trim();
//////////////////加密///////////////////////////////////////////
try{
//获取公约及参数e,n
FileInputStream f = new FileInputStream("Skey_RSA_pub.dat");
ObjectInputStream b = new ObjectInputStream(f);
RSAPublicKey pbk = (RSAPublicKey) b.readObject();
BigInteger e1 = pbk.getPublicExponent();
BigInteger n = pbk.getModulus();
// System.out.println("e1=" + e1);
// System.out.println("n=" + n);
//获取明文m
byte ptext[] = str2.getBytes("UTF8");
BigInteger m = new BigInteger(ptext);
//计算密文,打印
BigInteger c = m.modPow(e1, n);
// System.out.println("c=" + c);
//保存密文
cs = c.toString();
// BufferedWriter out =
// new BufferedWriter(new OutputStreamWriter(new FileOutputStream(
// "Enc_RAS.dat")));
// out.write(cs, 0, cs.length());
// out.close();
}catch(Exception ex){
// ex.printStackTrace();
}
///////////////////////////////////////
Dcyh jr = new Dcyh();
Statement stemtjr = jr.stmt;
Connection fd=jr.con;
String str1=jTextField1.getText();
String str3="";
if(String.valueOf(jComboBox1.getSelectedItem())=="老师"){str3+="1"; }
else if(String.valueOf(jComboBox1.getSelectedItem())=="管理员")str3+="2";
else {str3+="0";}
//判断查询条件
String sql="SELECT * FROM 用户 WHERE 用户=";
sql+="'"+str1+"'";
sql+=" AND 权限="+str3;
// System.out.println(sql);
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(Exception ex){ }
try
{
con = DriverManager.getConnection("jdbc:odbc:用户", "sample", "");
stmt = con.createStatement();
rs=stmt.executeQuery(sql);
////////////////////////////////////
/* lookup(String sql)
{
rs=stmt.executeQuery(sql);
}*/
/////////////////////////////////////
}catch (Exception ex){ }
try{ ResultSet rsjr=stemtjr.executeQuery(sql);
if(rsjr.next())
{ operator=rsjr.getString(1);
password=rsjr.getString(2);
right=rsjr.getString(3);
mode=rsjr.getString(4);
}
}catch(Exception ex){
// JOptionPane.showMessageDialog(this,"用户或密码错误","警告",JOptionPane.INFORMATION_MESSAGE);
// if(operator.length()>0)flag=1; System.out.println("e1111or");
}
length=str1.length();
// System.out.println("str2 "+str2);
// System.out.println("operator "+operator);
//System.out.println("password "+password);
//System.out.println("counter1="+counter1);
if(length>0){
if(!(cs.equals(password)||counter1>=max)){
counter1++;
if (!(cs.equals(password))&&counter1<max)counter1=counter1; //JOptionPane.showMessageDialog(this, "用户或密码错误!","警告", JOptionPane.INFORMATION_MESSAGE);
else if(counter1>=max){
// JOptionPane.showMessageDialog(this, "输入错误3次,退出系统!", "警告", JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}
else if(cs.equals(password)){
cancel();
// JOptionPane.showMessageDialog(this,"OK,Welcome!","警告",JOptionPane.INFORMATION_MESSAGE);
///////////////////增加日志///////////////////
try{
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // 实例化JDBC-ODBC桥的驱动
}
catch (ClassNotFoundException ex1) {
}
String url = "jdbc:odbc:日志管理"; // 设置连接字符串
connection = DriverManager.getConnection(url); // 连接数据库
statement = connection.createStatement(); // 创建Statement接口对象
java.util.Date now=new java.util.Date();
String sql1 = "insert into 日志管理 (类型,用户,日期) values ('登录',";
sql1+="'"+operator+"',";
sql1+="'"+now+"')";
statement.executeUpdate(sql1); // 执行增加新的数据记录语句
}catch(Exception ex){;}
//maindesk调用主界面////////////////////////////////////////
boolean packFrame = false;
maindesk frame = new maindesk(operator,password,right,mode);
//Validate frames that have preset sizes
//Pack frames that have useful preferred size info, e.g. from their layout
if (packFrame) {
frame.pack();
}
else {
frame.validate();
}
//Center the window
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
frame.setVisible(true);
}
}
///////////////////////////////////////////////
}
////////////保存用户及权限//////////////////
}
class 登录_jButton2_actionAdapter implements java.awt.event.ActionListener {
登录 adaptee;
登录_jButton2_actionAdapter(登录 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton2_actionPerformed(e);
}
}
class 登录_jButton1_actionAdapter implements java.awt.event.ActionListener {
登录 adaptee;
登录_jButton1_actionAdapter(登录 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -