文本输入一个人的学号,当光标离开输入框时,文本框内显示该学号对应的姓名

 

文本输入一个人的学号,当光标离开输入框时,文本框内显示该学号对应的姓名

Reg.jsp

 

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>

<!DOCTYPE HTML PUBLIC "-//W 3C //DTD HTML 4.01 Transitional//EN">

<html>

  <head>   

    <title>My JSP 'p1.jsp' starting page</title>

  </head>

 

  <body>

    <SCRIPT LANGUAGE="JavaScript">

        function getName(){

           var stuId = document.queryForm.stuId.value;

          

            var xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");

           xmlHttp.open("GET", "queryName.do?stuId="+stuId, true);           

           xmlHttp.onreadystatechange=function() {

              if (xmlHttp.readyState==4) {

                  document.queryForm.stuId.value = xmlHttp.responseText;

              }

           }

           xmlHttp.send();  

        }

    </SCRIPT>

    <form name="queryForm">

    请您输入学生学号:<input type="text" name="stuId" onblur="getName()"><BR>

    <input type="button" value="提交按钮">

    </form>

    <hr>

  </body>

</html>

 

 

 

QueryNameAction.java

 

 

package prj29_1.action;

 

import java.io.PrintWriter;

 

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

import org.apache.struts.action.Action;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

 

import dao.StudentDao;

 

 

public class QueryNameAction extends Action {

 

       public ActionForward execute(ActionMapping mapping, ActionForm form,

                     HttpServletRequest request, HttpServletResponse response) {

             

              String stuId = request.getParameter("stuId");

              StudentDao sdao = new StudentDao();

              String stuName = sdao.getNameById(stuId);

              response.setCharacterEncoding("gb2312");

              System.out.println(stuName);

              try{

                     PrintWriter out = response.getWriter();

                     if(stuName==null)       {stuName = "该学生不存在";}

                     out.print(stuName);//相当于给客户端的输出,将会在页面上显示

              }catch(Exception ex){}

             

              return null;

       }

}

 

 

 

 

package dao;

 

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.util.ArrayList;

 

import po.Student;

 

//访问数据库

public class StudentDao {

       private Connection conn = null;

      

       public void initConnection(){//初始化数据库连接

              try{

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

                     conn = DriverManager.getConnection("jdbc:odbc:School","scott","tiger");

              }catch(Exception ex){ex.printStackTrace();}

       }

      

       public String getNameById(String stuId){

              String sql = "SELECT 姓名 FROM 学籍 WHERE 学号='"+stuId+"'";

              try{

                     this.initConnection();

                     ResultSet rs = conn.createStatement().executeQuery(sql);

                     if(rs.next()){

                            return rs.getString("姓名");

                     }

                    

              }catch(Exception ex){

                     ex.printStackTrace();

              }

              finally{

                     this.closeConnection();

              }

              return null;

       }

      

       public void closeConnection(){

              try{

                     if(conn!=null){

                            conn.close();

                            conn = null;

                     }

              }catch(Exception ex){ex.printStackTrace();}

       }

}

=====================================================

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用Java Swing或JavaFX创建一个包含文本框和按钮的窗口。当用户在文本框输入学号并点击按钮,程序可以查询数据库或从文件中读取学生信息,并在窗口上显示对应姓名。例如,可以在按钮的事件处理程序中编写以下代码: 1. 获取文本框输入学号 2. 查询数据库或读取文件,获取对应学号姓名 3. 将姓名显示在窗口上的标签或文本框中 ### 回答2: ### 回答3: Java是一种面向对象的编程语言,提供了许多GUI工具包来编写各种面向用户的图形界面应用程序。在Java的GUI编程中,Swing工具包是最常用的图形用户界面(UI)工具包之一。接下来,我们将讨论如何使用Swing工具包来实现一个输入学号文本框,能显示姓名的案例。 一、设计思路 这个案例要求我们输入学号,然后通过一个查询按钮查询对应姓名。为了实现这个功能,我们需要使用以下的Swing组件: 1. JLabel:用来显示标题或说明信息的标签。 2. JTextField:用来输入文本信息的文本框。 3. JButton:用来触发事件的按钮。 4. JTextArea:用来显示查询结果的文本区域。 我们的设计思路如下:当用户输入学号并点击查询按钮,程序将查询学生数据库,获取对应姓名信息,并将结果显示文本区域中。 二、代码实现 首先,我们要定义一个类,该类将继承JFrame类,并实现ActionListener接口。我们可以在该类的构造函数中添加需要的Swing组件,并为查询按钮添加ActionListener监听器。按照上面的设计思路,我们定义以下的代码: ``` import java.awt.*; import java.awt.event.*; import javax.swing.*; public class StudentGUI extends JFrame implements ActionListener { JLabel titleLbl, studentIDLbl, resultLbl; JTextField studentIDTF; JButton queryBtn; JTextArea resultTextArea; public StudentGUI() { setTitle("学生查询系统"); setLayout(new FlowLayout()); setSize(350, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); titleLbl = new JLabel("输入学号查询姓名:"); studentIDLbl = new JLabel("学号:"); studentIDTF = new JTextField(10); queryBtn = new JButton("查询"); resultLbl = new JLabel("查询结果:"); resultTextArea = new JTextArea(10, 20); add(titleLbl); add(studentIDLbl); add(studentIDTF); add(queryBtn); add(resultLbl); add(resultTextArea); // 为查询按钮添加监听器 queryBtn.addActionListener(this); } public void actionPerformed(ActionEvent e) { // 获取用户输入学号 String studentID = studentIDTF.getText(); // 根据学号查询学生姓名,这里我们使用了一个假的数据库 String studentName = findStudentName(studentID); // 将查询结果显示文本区域中 resultTextArea.setText(studentID + "对应姓名为:" + studentName); } private String findStudentName(String studentID) { // 假设有一个学生数据库,这里我们只返回一个假的学生名字 return "张三"; } public static void main(String[] args) { StudentGUI gui = new StudentGUI(); gui.setVisible(true); } } ``` 以上的代码实现了我们所需要的功能:当用户输入学号并点击查询按钮,程序将会查询学生数据库,获取对应的学生姓名,并将查询结果显示文本区域中。 三、总结 Java提供了许多GUI工具包来编写图形界面应用程序。Swing工具包是最常用的UI工具包之一。本篇文章我们实现了一个简单的学生查询系统,通过Swing组件来实现用户界面的呈现,查询学生姓名,并将查询结果显示文本区域中。这个案例充分展示了Java在GUI编程中的强大功能,如果你想深入了解GUI编程,可以使用这个案例作为一个起点来进一步扩展和学习。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值