根据题目要求:设计如下界面,实现下列功能。
输入学生姓名,单击“查询”按钮,若学生姓名在数据文件(data.txt)中存在,在多行文本框中显示查询到的学生信息;若“姓名”不存在,显示“查无此人”;单击“关闭”按钮结束程序。
data.txt
完整的代码
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.io.*;
public class zuoye1 extends JFrame {
JTextField b2=new JTextField(12);//文本框
JTextArea b3=new JTextArea(25,50);//文本域
public zuoye1() {
JLabel b1=new JLabel("请输入学生姓名");//标签
JButton b4=new JButton("查询");//按钮
JButton b5=new JButton("关闭");
JPanel p=new JPanel();//创建一个容器
p.add(b1);//按所设计的界面把组件添加到容器中
p.add(b2);
p.add(b4);
p.add(b5);
p.add(b3);
getContentPane().add(p);//获取窗口的JPanel
b4.addActionListener(new MyListener());//注册监听器
b5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
System.exit(0);//关闭窗口
}
});
setVisible(true);//显示窗口
setSize(600,800); //窗口大小
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置默认关闭操作
}
public static void main(String[] args) {
new zuoye1();//创建对象
}
class MyListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
String s=b2.getText();//获取文本框的输入内容
boolean find=false;
String ss="";
String []AA=new String[10];
try{
Scanner sc=new Scanner(new File("C:\Users\XM\Documents\JAVA\javashiyan\ZuoYe3\data.txt"));//读文件
while(sc.hasNextLine())//判断有无行可读
{
ss=sc.nextLine();
AA=ss.split("\s+");//分离信息,得数组
if(s.equals(AA[0]))
{
find=true;
break;
}
}
if(find) b3.setText("语文:"+AA[2]+"n数学:"+AA[3]+"n英语"+AA[4]+"n自然:"+AA[5]+"n社会:"+AA[6]+"n总分:"+AA[7]);//把结果显示在文本域中
else JOptionPane.showMessageDialog(null,"查无此人!");
}
catch(Exception ex){
}
}
}
}
最后的结果



