编写一个窗体应用程序,实现JAVA成绩录入功能(包括学号、姓名、成绩), 并把结果一起存储为磁盘文件(可保存若干个学生的成绩)。

package com.test;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;

import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;
/*编写一个窗体应用程序,实现JAVA成绩录入功能(包括学号、姓名、成绩),
并把结果一起存储为磁盘文件(可保存若干个学生的成绩)。*/
public class JFrameTest extends JFrame{

	/**
	 * @param args
	 */
	private JTextArea jta;//文本域
	private JTextField stuid;//学号
	private JTextField name;//姓名
	private JTextField cj;//成绩
	private JButton btsave;//保存
	private JButton btclean;//清除
	private JButton btopen;//打开
	private JFileChooser jfcFile;//文件选择框
	private JTextField jtf;//文件路径
	private JLabel jl;
	public JFrameTest(){
		setTitle("成绩录入:");
		Container c = getContentPane();
		c.setLayout(null);
		setBounds(0, 0, 600, 500);
		
		jl = new JLabel("打开:");
		jta = new JTextArea();
		stuid = new JTextField();
		name = new JTextField();
		cj = new JTextField();
		btsave = new JButton("保存");
		btclean = new JButton("清除");
		btopen = new JButton("打开");
		jfcFile = new JFileChooser();
		jtf = new JTextField();
		JLabel jlid = new JLabel("学号:");
		JLabel jlname = new JLabel("姓名:");
		JLabel jlcj = new JLabel("成绩:");
		c.add(jlid);
		c.add(jlname);
		c.add(jlcj);
		FileFilter filter = new FileNameExtensionFilter("文本文件","txt","ini");
		jfcFile.setFileFilter(filter);
		c.add(jl);
		c.add(jta);
		c.add(stuid);
		c.add(name);
		c.add(cj);
		c.add(btsave);
		c.add(btclean);
		c.add(btopen);
		c.add(jtf);
		jl.setBounds(10, 10, 50, 20);
		jtf.setBounds(100, 10, 200, 20);
		btopen.setBounds(300, 10, 70, 20);
		jlid.setBounds(10, 50, 50, 20);
		stuid.setBounds(100, 50, 150, 20);
		jlname.setBounds(10, 100, 50, 20);
		name.setBounds(100, 100,150 , 20);
		jlcj.setBounds(10, 150, 50, 20);
		cj.setBounds(100, 150, 150, 20);
		jta.setBounds(300, 50, 200, 200);
		jta.setLineWrap(true);
		btsave.setBounds(10, 200, 80, 20);
		btclean.setBounds(300, 300, 80, 20);
		
		btopen.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				btopenActionPerformed(e);
			}
		});
		
		btsave.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				btsaveActionPerformed(e);
			}
		});
		
		btclean.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				jta.setText("");
			}
		});
		
		setVisible(true);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		}
	
	
	public void btopenActionPerformed(ActionEvent e){
		try {
			if(jfcFile.showOpenDialog(this)!=JFileChooser.APPROVE_OPTION){ 
				return; 
				}
			String strFileName=jfcFile.getSelectedFile().getAbsolutePath();
			BufferedReader in = new BufferedReader(new FileReader(strFileName)); 
			String strLine = in.readLine(); 
			//读取一行内容 
			String strContent=""; 
			boolean IsFirst=true; 
			while(strLine != null ){
				if(!IsFirst) { 
					strContent+="\n";
					} 
				strContent+=strLine;
				IsFirst=false;
				strLine = in.readLine();
				} in.close(); 
				jtf.setText(strFileName);
				jta.setText(strContent);
				} 
		catch(Exception ex){
			JOptionPane.showMessageDialog(this, ex.getMessage());
			}
		}
	public void btsaveActionPerformed(ActionEvent e) {
		try{
			String strFileName=jtf.getText();
			if(strFileName.equals("")) { 
				if(jfcFile.showSaveDialog(this)!=JFileChooser.APPROVE_OPTION) {
					return; 
					} 
				strFileName=jfcFile.getSelectedFile().getAbsolutePath();
				jtf.setText(strFileName);
				}
			String strContent=stuid.getText() + name.getText() + cj.getText(); 
			strContent=strContent.replace("\n", "\r\n");
			BufferedWriter out = new BufferedWriter(new FileWriter(strFileName,true));
			out.write(strContent+"\n");
			out.close();
			}catch(Exception ex){ 
				JOptionPane.showMessageDialog(this, ex.getMessage()); 
				}
			}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new JFrameTest();
	}

}

  • 0
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值