java图形界面跳转_Java 图形界面开发--图文并茂建立学生管理系统

本文介绍了一位初学者逐步实现的Java图形界面学生管理系统,包括静态登录界面、添加监听验证用户名和密码,以及使用数据库验证并跳转界面。通过详细步骤和代码示例展示了如何创建登录界面,添加事件监听进行用户名和密码验证,以及连接数据库进行数据交互。文章适合Java GUI入门者学习参考。
摘要由CSDN通过智能技术生成

图形用户界面(Graphics User Interface,GUI)是用户与程序交互的窗口,比命令行的界面更加直观并且更好操作。

这是本人在学习java图形界面开发阶段一步一步实现的超级简易的学生管理系统。虽然说不入大神法眼,但这确实是费了自己不少心血。对于我这样的菜鸟来说,考虑不周到,一不小心就Exception,然后就是自己调呀调。在此分享出来希望对和我一样的菜鸟有帮助。

程序完整代码下载地址见:

步骤一:静态登录界面的实现。

代码如下:

/**

* 功能:学生成绩管理系统

* 步骤1、登录界面的静态实现

* author:ywq

*/

import java.awt.*;

import javax.swing.*;

public class Login extends JFrame{

//定义组件

JPanel jp1,jp2,jp3;//面板

JLabel jlb1,jlb2;//标签

JButton jb1,jb2;//按钮

JTextField jtf;//文本

JPasswordField jpf;//密码

public static void main(String[] args) {

Login win=new Login();

}

//构造函数

public Login(){

//创建面板

jp1=new JPanel();

jp2=new JPanel();

jp3=new JPanel();

//创建标签

jlb1=new JLabel("用户名");

jlb2=new JLabel("密 码");

//创建按钮

jb1=new JButton("登录");

jb2=new JButton("重置");

//创建文本框

jtf=new JTextField(10);

//创建密码框

jpf=new JPasswordField(10);

//设置布局管理

this.setLayout(new GridLayout(3, 1));//网格式布局

//加入各个组件

jp1.add(jlb1);

jp1.add(jtf);

jp2.add(jlb2);

jp2.add(jpf);

jp3.add(jb1);

jp3.add(jb2);

//加入到JFrame

this.add(jp1);

this.add(jp2);

this.add(jp3);

//设置窗体

this.setTitle("用户登录");//窗体标签

this.setSize(300, 150);//窗体大小

this.setLocationRelativeTo(null);//在屏幕中间显示(居中显示)

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//退出关闭JFrame

this.setVisible(true);//显示窗体

//锁定窗体

this.setResizable(false);

}

}

运行界面如图所示:

46993139ec18258448f4a07884329ca5.png

本静态界面的实现,使用了网格布局,3行1列,在每一行中放入了一个JPanel面板,每个面板上又分别放入所需的组件,整体构成了一个静态的登录界面。

步骤二:添加监听,并且进行验证用户名和密码。

代码如下:/*

* 功能:学生成绩管理系统

* 步骤1:登录界面的静态实现

* 步骤2:添加对各个组件的监听。

* 步骤3:对用户名和密码进行验证。

* author:ywq

*/

package com.package_1;

import javax.swing.*;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

public class Login extends JFrame implements ActionListener {

//定义组件

JButton jb1,jb2=null;

JRadioButton jrb1,jrb2=null;

JPanel jp1,jp2,jp3,jp4=null;

JTextField jtf=null;

JLabel jlb1,jlb2,jlb3=null;

JPasswordField jpf=null;

ButtonGroup bg=null;

//设定用户名和密码

final String stu_name="6";

final String stu_pwd="1";

final String tea_name="5";

final String tea_pwd="1";

public static void main(String[] args) {

// TODO Auto-generated method stub

Login ms=new Login();

}

public Login()

{

//创建组件

jb1=new JButton("登录");

jb2=new JButton("重置");

//设置监听

jb1.addActionListener(this);

jb2.addActionListener(this);

jrb1=new JRadioButton("教师");

jrb2=new JRadioButton("学生");

bg=new ButtonGroup();

bg.add(jrb1);

bg.add(jrb2);

jrb2.setSelected(true);

jp1=new JPanel();

jp2=new JPanel();

jp3=new JPanel();

jp4=new JPanel();

jlb1=new JLabel("用户名:");

jlb2=new JLabel("密 码:");

jlb3=new JLabel("权 限:");

jtf=new JTextField(10);

jpf=new JPasswordField(10);

//加入到JPanel中

jp1.add(jlb1);

jp1.add(jtf);

jp2.add(jlb2);

jp2.add(jpf);

jp3.add(jlb3);

jp3.add(jrb1);

jp3.add(jrb2);

jp4.add(jb1);

jp4.add(jb2);

//加入JFrame中

this.add(jp1);

this.add(jp2);

this.add(jp3);

this.add(jp4);

//设置布局管理器

this.setLayout(new GridLayout(4,1));

//给窗口设置标题

this.setTitle("学生成绩管理系统");

//设置窗体大小

this.setSize(300,200);

//设置窗体初始位置

this.setLocation(200, 150);

//设置当关闭窗口时,保证JVM也退出

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//显示窗体

this.setVisible(true);

this.setResizable(true);

}

@Override

public void actionPerformed(ActionEvent e) {

if(e.getActionCommand()=="登录")

{

//如果选中教师登录

if(jrb1.isSelected())

{

tealogin();

}else if(jrb2.isSelected()) //学生在登录系统

{

stulogin();

}

}else if(e.getActionCommand()=="重置")

{

clear();

}

}

//学生登录判断方法

public void stulogin()

{

if(stu_name.equals(jtf.getText())&&stu_pwd.equals(jpf.getText()))

{

//System.out.println("登录成功");

JOptionPane.showMessageDialog(null,"登录成功!","提示消息",JOptionPane.WARNING_MESSAGE);

clear();

}else if(jtf.getText().isEmpty()&&jpf.getText().isEmpty())

{

JOptionPane.showMessageDialog(null,"请输入用户名和密码!","提示消息",JOptionPane.WARNING_MESSAGE);

}else if(jtf.getText().isEmpty())

{

JOptionPane.showMessageDialog(null,"请输入用户名!","提示消息",JOptionPane.WARNING_MESSAGE);

}else if(jpf.getText().isEmpty())

{

JOptionPane.showMessageDialog(null,"请输入密码!","提示消息",JOptionPane.WARNING_MESSAGE);

}else

{

JOptionPane.showMessageDialog(null,"用户名或者密码错误!\n请重新输入","提示消息",JOptionPane.ERROR_MESSAGE);

//清空输入框

clear();

}

}

//教师登录判断方法

public void tealogin()

{

if(tea_name.equals(jtf.getText())&&tea_pwd.equals(jpf.getText()))

{

//System.out.println("登录成功");

JOptionPane.showMessageDialog(null,"登录成功!","提示消息",JOptionPane.WARNING_MESSAGE);

clear();

}else if(jtf.getText().isEmpty()&&jpf.getText().isEmpty())

{

JOptionPane.showMessageDialog(null,"请输入用户名和密码!","提示消息",JOptionPane.WARNING_MESSAGE);

}else if(jtf.getText().isEmpty())

{

JOptionPane.showMessageDialog(null,"请输入用户名!","提示消息",JOptionPane.WARNING_MESSAGE);

}else if(jpf.getText().isEmpty())

{

JOptionPane.showMessageDialog(null,"请输入密码!","提示消息",JOptionPane.WARNING_MESSAGE);

}else

{

JOptionPane.showMessageDialog(null,"用户名或者密码错误!\n请重新输入","提示消息",JOptionPane.ERROR_MESSAGE);

//清空输入框

clear();

}

}

//清空文本框和密码框

publicvoid clear()

{

jtf.setText("");

jpf.setText("");

}

}

运行界面如下所示:

3af5a9f7039c099fe74b1890f789c3f5.png

b859b8d41e20b0763a6f234496ea0d0b.png

eb591a4764997e4f35351d18dc0e9f1b.png

本程序加入了对各个组件的监听,首先implements  ActionListener接口,然后注册监听。在ActionPerformance方法中进行相应的处理事件。

当点击登录按钮时,首先判断是哪个权限的用户在进行登录,分别调用taelogin()和stulogin()方法来进行验证。在验证方法中,对文本框和密码框的内容进行一个判断,分别弹出不同的提示信息。

步骤三:(1)程序连接数据库来进行用户名和密码的验证!!!

(2)验证成功后进行界面的切换!!!

代码如下:

/*

* 功能:学生成绩管理系统

* 步骤1、登录界面的静态实现

* 步骤2:实现界面的切换

* 步骤3:使用数据库来验证用户名和密码

* author:ywq

*/

package com.package_2;

import javax.swing.*;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.sql.*;

public class login extends JFrame implements ActionListener {

//定义登录界面的组件

JButton jb1,jb2,jb3=null;

JRadioButton jrb1,jrb2=null;

JPanel jp1,jp2,jp3,jp4=null;

JTextField jtf=null;

JLabel jlb1,jlb2,jlb3=null;

JPasswordField jpf=null;

ButtonGroup bg=null;

//设定用户名和密码

static String userword;

static String pwd;

static Connection ct=null;

PreparedStatement ps=null;

ResultSet rs=null;

public static void main(String[] args) {

// TODO Auto-generated method stub

login ms=new login();

try {

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

ct=DriverManager.getConnection("jdbc:odbc:ywq");

} catch (Exception e) {

e.printStackTrace();

}

}

//构造函数

public login()

{

//创建组件

jb1=new JButton("登录");

jb2=new JButton("重置");

jb3=new JButton("退出");

//设置监听

jb1.addActionListener(this);

jb2.addActionListener(this);

jb3.addActionListener(this);

//以上三个按钮的监听统一放在了actionPerformance()中

//监听也可以是下边这种方式

//jb3.addActionListener(new ActionListener()

//{

//

//@Override

//public void actionPerformed(ActionEvent e) {

TODO Auto-generated method stub

//System.exit(0);

//}

//

//});

jrb1=new JRadioButton("教师");

jrb2=new JRadioButton("学生");

bg=new ButtonGroup();

bg.add(jrb1);

bg.add(jrb2);

jrb2.setSelected(true);

jp1=new JPanel();

jp2=new JPanel();

jp3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值