此文用于记录在校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方法哦~!