重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
For a description of your 给我留一个你的问题和Email,
成都服务器托管,创新互联提供包括服务器租用、成都服务器托管、带宽租用、云主机、机柜租用、主机租用托管、CDN网站加速、申请域名等业务的一体化完整服务。电话咨询:028-86922220
可以与我们联系进一步需求,
有可能帮你,
百度_Hi联系我,
此回复对于所有需求和和来访者有效,
ES:\\2C03AFA038F3D2A2F97C89A3F1D757FF
//设置关闭后直接退出
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
package Login;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.net.URL;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JOptionPane;
import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;
/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class NewJFrame extends javax.swing.JFrame {
private JLabel jLabel_School_logo;
private JLabel jLabel_user_name;
private JLabel jLabel_passwd;
private JButton jButton_reg;
private JButton jButton_login;
private JPasswordField jPasswordField;
private JTextField jTextField_user_name;
private JLabel jLabel_title;
private int student_statue=0;
private JComboBox jComboBox1;
private int manager_statue=0;
/**
*
*/
/**
*
*/
/**
* Auto-generated main method to display this JFrame
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
NewJFrame inst = new NewJFrame();
inst.setTitle("教室管理系统登录");
inst.setLocationRelativeTo(null);
inst.setVisible(true);
}
});
}
public NewJFrame() {
super();
initGUI();
}
private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
getContentPane().setLayout(null);
{
jLabel_School_logo = new JLabel();
getContentPane().add(jLabel_School_logo);
jLabel_School_logo.setBounds(0, 0, 86, 84);
ImageIcon logo=new ImageIcon("img/log.jpg");
jLabel_School_logo.setIcon(logo);
}
{
jLabel_title = new JLabel();
getContentPane().add(jLabel_title);
jLabel_title.setBounds(86, 0, 447, 84);
ImageIcon title=new ImageIcon("img/title.jpg");
jLabel_title.setIcon(title);
}
{
jLabel_user_name = new JLabel();
getContentPane().add(jLabel_user_name);
jLabel_user_name.setText("\u5b66\u53f7\uff1a");
jLabel_user_name.setBounds(155, 131, 51, 31);
jLabel_user_name.setFont(new java.awt.Font("叶根友毛笔行书2.0版",0,12));
}
{
jTextField_user_name = new JTextField();
getContentPane().add(jTextField_user_name);
jTextField_user_name.setBounds(199, 135, 151, 23);
}
{
jLabel_passwd = new JLabel();
getContentPane().add(jLabel_passwd);
jLabel_passwd.setText("\u5bc6\u7801\uff1a");
jLabel_passwd.setBounds(152, 185, 51, 31);
jLabel_passwd.setFont(new java.awt.Font("叶根友毛笔行书2.0版",0,12));
}
{
jPasswordField = new JPasswordField();
getContentPane().add(jPasswordField);
jPasswordField.setBounds(199, 189, 151, 23);
}
{
jButton_login = new JButton();
getContentPane().add(jButton_login);
jButton_login.setText("\u767b\u5f55");
jButton_login.setBounds(199, 235, 68, 23);
jButton_login.setFont(new java.awt.Font("叶根友毛笔行书2.0版",0,12));
}
{
jButton_reg = new JButton();
getContentPane().add(jButton_reg);
jButton_reg.setText("\u6ce8\u518c");
jButton_reg.setBounds(282, 235, 68, 23);
jButton_reg.setFont(new java.awt.Font("叶根友毛笔行书2.0版",0,12));
jButton_reg.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
jButton_regMouseClicked(evt);
}
});
}
{
ComboBoxModel jComboBox1Model =
new DefaultComboBoxModel(
new String[] { "学生/老师登录", "管理员登录" });
jComboBox1 = new JComboBox();
getContentPane().add(jComboBox1);
jComboBox1.setModel(jComboBox1Model);
jComboBox1.setBounds(199, 90, 152, 23);
jComboBox1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jComboBox1ActionPerformed(evt);
}
});
}
pack();
this.setSize(549, 334);
} catch (Exception e) {
//add your error handling code here
e.printStackTrace();
}
}
private void jComboBox1ActionPerformed(ActionEvent evt) {
if(jComboBox1.getSelectedIndex()==0)
{
jLabel_user_name.setText("学号:");
}
else
{
jLabel_user_name.setText("帐号:");
}
}
private void jButton_regMouseClicked(MouseEvent evt) {
if(jComboBox1.getSelectedIndex()==1)
{
JOptionPane.showMessageDialog(NewJFrame.this, "管理员帐号不提供注册!", "", JOptionPane.DEFAULT_OPTION);
}
else
{
reg register=new reg();
register.setTitle("注册");
register.setLocationRelativeTo(this);
register.setVisible(true);
}
}
}
//设置setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);在另一个方法,你怎么用到你这个F呢?
- -没看明白,什么叫做让他跑起来,如果三种身份的话呢,你可以做三个不同的全局变量或参数,在你用其中一种身份登录时,所对应的参数也被代入进去,我是不懂来着。。。
你可以做一个下拉框,选项有教师和学生,不过这个的话,一般是通过权限来控制的,这样教师和学生登录之后,看到的菜单就不一样了。
JDBC连接数据库
•创建一个以JDBC连接数据库的程序,包含7个步骤:
1、加载JDBC驱动程序:
在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),
这通过java.lang.Class类的静态方法forName(String className)实现。
例如:
try{
//加载MySql的驱动类
Class.forName("com.mysql.jdbc.Driver") ;
}catch(ClassNotFoundException e){
System.out.println("找不到驱动程序类 ,加载驱动失败!");
e.printStackTrace() ;
}
成功加载后,会将Driver类的实例注册到DriverManager类中。
2、提供JDBC连接的URL
•连接URL定义了连接数据库时的协议、子协议、数据源标识。
•书写形式:协议:子协议:数据源标识
协议:在JDBC中总是以jdbc开始
子协议:是桥连接的驱动程序或是数据库管理系统名称。
数据源标识:标记找到数据库来源的地址与连接端口。
例如:(MySql的连接URL)
jdbc:mysql:
//localhost:3306/test?useUnicode=truecharacterEncoding=gbk ;
useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为
gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。
3、创建数据库的连接
•要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,
该对象就代表一个数据库的连接。
•使用DriverManager的getConnectin(String url , String username ,
String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和
密码来获得。
例如:
//连接MySql数据库,用户名和密码都是root
String url = "jdbc:mysql://localhost:3306/test" ;
String username = "root" ;
String password = "root" ;
try{
Connection con =
DriverManager.getConnection(url , username , password ) ;
}catch(SQLException se){
System.out.println("数据库连接失败!");
se.printStackTrace() ;
}
4、创建一个Statement
•要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3
种类型:
1、执行静态SQL语句。通常通过Statement实例实现。
2、执行动态SQL语句。通常通过PreparedStatement实例实现。
3、执行数据库存储过程。通常通过CallableStatement实例实现。
具体的实现方式:
Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt =
con.prepareCall("{CALL demoSp(? , ?)}") ;
5、执行SQL语句
Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate
和execute
1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句
,返回一个结果集(ResultSet)对象。
2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或
DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等
3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的
语句。
具体实现的代码:
ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;
int rows = stmt.executeUpdate("INSERT INTO ...") ;
boolean flag = stmt.execute(String sql) ;
6、处理结果
两种情况:
1、执行更新返回的是本次操作影响到的记录数。
2、执行查询返回的结果是一个ResultSet对象。
• ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些
行中数据的访问。
• 使用结果集(ResultSet)对象的访问方法获取数据:
while(rs.next()){
String name = rs.getString("name") ;
String pass = rs.getString(1) ; // 此方法比较高效
}
(列是从左到右编号的,并且从列1开始)
7、关闭JDBC对象
操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声
明顺序相反:
1、关闭记录集
2、关闭声明
3、关闭连接对象
if(rs != null){ // 关闭记录集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(stmt != null){ // 关闭声明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(conn != null){ // 关闭连接对象
try{
conn.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
如果是你一个人开发,那就照着需求一步步做呗。比如:
首先要有登录界面,登录界面设计好,需要传入的参数有 用户名,密码,登录身份;这时你就设计一个数据库表 user(login_name,login_password,login_type);这时候登录进去,因为不同人的权限工作内容不同,因此登录进去显示的界面和选项也不同,你需要设计3种界面(学生:单一的查询成绩(此时你就需要创建一个学生表student(id,name,score));教师:查看学生成绩以及自己的教学科目,此时创建一个教师表teacher(id,name,course);管理员:这个页面设计是重头戏,数据处理先做好(以@RequestMapping(“/xxxx.do”)为主,设计rest api用于提供页面请求接口,建议使用spring_servlet和hibernate配合实现,使用MVC分层设计。
首先要设计表结构,表结构才是业务逻辑实现的最初的地方。一张教室表,一张教师表,一张教室场次(或者说是时间表),再做一张中间表管理场次表和教师表就行啦。