⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 studentread.java

📁 Java程序设计实验与实训源代码经典的JAVA学习教材
💻 JAVA
字号:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.io.*;
import java.util.*;


class StudentRead{
	public static void main(String[] args) {
		MyFrameTen myFrame=new MyFrameTen();
		myFrame.show();
	}
}

class MyFrameTen extends JFrame implements ActionListener{
	private JLabel xhLabel;
	private JLabel xmLabel;
	private JLabel fsLabel;
	private JTextField xhTF;
	private JTextField xmTF;
	private JTextField fsTF;
	private JButton dkwjButton;
	private JButton nextButton;
	private JButton previousButton;
	private FileDialog fd;	
	private String fpath;
	public static BufferedReader myBR;
	private boolean flag;
		
	MyFrameTen(){
		xhLabel=new JLabel("学号");
		xmLabel=new JLabel("姓名");
		fsLabel=new JLabel("分数");
		xhTF=new JTextField(10);
		xmTF=new JTextField(10);
		fsTF=new JTextField(10);
		xhTF.setEditable(false);
		xmTF.setEditable(false);
		fsTF.setEditable(false);
		dkwjButton=new JButton("打开文件");
		dkwjButton.addActionListener(this);
		nextButton=new JButton("下一条");
		nextButton.addActionListener(this);
				
		Container myContentPane=getContentPane();
		myContentPane.setLayout(new FlowLayout());
		myContentPane.add(xhLabel);
		myContentPane.add(xhTF);
		myContentPane.add(xmLabel);
		myContentPane.add(xmTF);
		myContentPane.add(fsLabel);
		myContentPane.add(fsTF);
		myContentPane.add(dkwjButton);
		myContentPane.add(nextButton);
		
		setSize(180,200);
		addWindowListener(new QuitWindow());		
	}
	
	public void actionPerformed(ActionEvent e){
		String[] fields=new String[3];
		String stu="";
		int i=0;
		
		if(e.getActionCommand()=="打开文件"){
			fd=new FileDialog(this,"打开文件",FileDialog.LOAD);
			fd.show();
			fpath=fd.getFile();
			if(fpath!=null){
				fpath=fd.getDirectory()+fpath;
				try{
					myBR=new BufferedReader(new FileReader(fpath));
					flag=true;
					nextButton.setEnabled(true);
					}catch(IOException ioe){
						System.err.println("无法打开文件"+fpath);
						System.exit(1);
					}
				try{
					stu=myBR.readLine();
				}catch(IOException err){
					System.err.println("文件读错误");
					System.exit(1);
				}
				StringTokenizer st=new StringTokenizer(stu,":");
				while (st.hasMoreTokens()){
					fields[i]=st.nextToken();
					i++;
				}
				xhTF.setText(fields[0]);
				xmTF.setText(fields[1]);
				fsTF.setText(fields[2]);
			}
		}
		if(e.getActionCommand()=="下一条"){
			if(flag){
				try{
					stu=myBR.readLine();
					myBR.mark(1);
					}catch(IOException err){
						System.err.println("文件读错误");
						System.exit(1);
					}
					
				try{
					if(myBR.read()==-1)
						nextButton.setEnabled(false);
					}catch(IOException eio){
						System.err.println("文件读错误");
						System.exit(1);
					}
						
				try{
					myBR.reset();
				}catch(IOException err2){
				}
				
				StringTokenizer st=new StringTokenizer(stu,":");
				while (st.hasMoreTokens()){
					fields[i]=st.nextToken();
					i++;
				}
				xhTF.setText(fields[0]);
				xmTF.setText(fields[1]);
				fsTF.setText(fields[2]);			
			}				
		}
	}
}

class QuitWindow extends WindowAdapter{
	public void windowClosing(WindowEvent e){
		try{
			MyFrameTen.myBR.close();
		}catch(IOException err){
			System.err.println("文件关闭错误");
			System.exit(1);
		}
		System.exit(0);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -