学习记录】使用Java Gui实现基本的数据录入.txt保存

本文记录了一次Java课程中的实验,内容涉及使用JavaSwing构建图形用户界面(GUI),包括创建姓名和Java成绩输入字段,以及“确定”和“重置”按钮。当点击“确定”时,程序将输入的数据保存到'Scores.txt'文件中。实验中使用了HashMap存储数据,并通过Lambda表达式处理按钮事件。
摘要由CSDN通过智能技术生成

此文用于记录在校Java课程学习】-实验报告4

这学期老师一共发布了四个实验报告,连肝三天终于把最后一个肝完了。

这边放一些自己编写时查阅的资料视屏(侵删: 

基本是这个视频帮了大忙:Java Swing入门课程_图形界面GUI编程_100集视频教程_哔哩哔哩_bilibili

此项目为实验报告四,下图为实验要求:

附上代码: 

需要的包:

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.plaf.DimensionUIResource;
import javax.swing.text.AttributeSet.FontAttribute;
import java.awt.event.*;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

myFrame类及方法:

public class MYFrame {
    public static class myFrame extends JFrame {
        
        
        Map<String,String> scip = new HashMap();
        
        static JTextField jt1 = new JTextField(10);
        static JTextField jt2 = new JTextField(10);
        
        public myFrame(String title){
            super(title);
            JFrame jFp = new JFrame("Test");
            //Panel
            JPanel rootP = new JPanel();    //添加根容器
            this.setContentPane(rootP);
            rootP.setLayout(null);  //取消默认流式布局器,使用自定义布局
            
            //Label
            JLabel jl1 = new JLabel("姓名:");    //添加标签
            rootP.add(jl1);
            jl1.setBounds(125,100,50,20);
            jl1.setHorizontalAlignment(SwingConstants.CENTER);
          
            JLabel jl2 = new JLabel("Java:");    //添加标签
            jl2.setHorizontalAlignment(SwingConstants.CENTER);
            rootP.add(jl2);
            jl2.setBounds(125,150,50,20);
            
            //TextField
            rootP.add(jt1);    //添加单行文本框
            jt1.setBounds(225,100,200,25);
            
            rootP.add(jt2);    //添加单行文本框
            jt2.setBounds(225,150,200,25);
            
            //Button
            JButton bt1 = new JButton("确定");    //添加按钮1
            rootP.add(bt1);
            bt1.setBounds(325,250,80,40);
            bt1.addActionListener((e) -> {         //Lambda表达式
                String s1 = jt1.getText();    
                  String s2 = jt2.getText();
                  scip.put("学号:" +s1, "\tJava:" +s2);  //加入map scip中
                  System.out.println(scip);
                  String scorefile = "Scores.txt";  //保存路径,此处是保存在了此项目文件夹中
                  try {
                      BufferedWriter bw = new BufferedWriter(new FileWriter(scorefile)); //新建  缓冲区
                      bw.write(String.valueOf(scip));  //写入文档
                      bw.close();     //关闭文档
                  } catch (IOException e1) {
                      e1.printStackTrace();
                  }
            } );        
            
            JButton bt2 = new JButton("重置");    //添加按钮2
            rootP.add(bt2);
            bt2.setBounds(175,250,80,40);
            bt2.addActionListener((e) -> {    Reset(); } );    //Lambda表达式,清除框内文字
            
           //设置弹出的初始位置以及窗口大小
           setBounds(500,500,600,400);
           //设置可见性 w h
           setVisible(true);
           //关闭窗口时自动退出
           setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
           }
         
       public static void Reset(){   
           jt1.setText("");
           jt2.setText("");    }
       }
}

对了 最后需要执行的话记得去调用myFrame方法哦~!

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值