package mndxxt;
import java.awt.Color;
import java.awt.Desktop;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
/**
* AddJFrame 增加窗口,
* 实现了用户及账单的增加和修改功能
* @author
*
*/
public class AddJFrame {
public static void addJFrame() {
JFrame af=new JFrame("模拟电信计费系统"); //将mf实例化;
af.setSize(350,300); //窗口大小
af.setResizable(false); //不允许界面最大化
af.setLocationRelativeTo(null); //使窗口居中
af.setVisible(true); //使窗口正常显示
af.setLayout(null); //空布局模式
//设置标签显示位置及大小和属性
JLabel label=new JLabel("欢迎来到增加界面");//实例化一个标签
af.add(label);
label.setHorizontalAlignment(JLabel.CENTER);
label.setFont(new Font("宋体",Font.BOLD,20));
label.setForeground(Color.BLUE);
label.setBounds(70,10,200,50);
JLabel label1=new JLabel("姓名:");
af.add(label1);
label1.setFont(new Font("宋体",Font.BOLD,16));
label1.setBounds(50,60,100,25);
JLabel label2=new JLabel("性别:");
af.add(label2);
label2.setFont(new Font("宋体",Font.BOLD,16));
label2.setBounds(50,90,100,25);
JLabel label3=new JLabel("电话号码:");
af.add(label3);
label3.setFont(new Font("宋体",Font.BOLD,16));
label3.setBounds(50,120,100,25);
JLabel label4=new JLabel("出生年月:");
af.add(label4);
label4.setFont(new Font("宋体",Font.BOLD,16));
label4.setBounds(50,150,100,25);
JLabel label5=new JLabel("居住地址:");
af.add(label5);
label5.setFont(new Font("宋体",Font.BOLD,16));
label5.setBounds(50,180,100,25);
JLabel label6=new JLabel("年");
af.add(label6);
label6.setFont(new Font("宋体",Font.BOLD,16));
label6.setBounds(180,150,100,25);
JLabel label7=new JLabel("月");
af.add(label7);
label7.setFont(new Font("宋体",Font.BOLD,16));
label7.setBounds(230,150,100,25);
JTextField t1=new JTextField();//添加文本框 姓名文本框
t1.setFont(new Font("宋体",Font.BOLD,14));
t1.setBounds(100,63,150,20);
af.add(t1);
JTextField t2=new JTextField();//添加文本框 电话文本框
t2.setFont(new Font("宋体",Font.BOLD,14));
t2.setBounds(130,123,120,20);
af.add(t2);
JTextField t3=new JTextField();//添加文本框 地址文本框
t3.setFont(new Font("宋体",Font.BOLD,14));
t3.setBounds(130,183,120,20);
af.add(t3);
JTextField t4=new JTextField();//添加文本框 年文本框
t4.setFont(new Font("宋体",Font.BOLD,14));
t4.setBounds(130,153,50,20);
af.add(t4);
JTextField t5=new JTextField();//添加文本框 月文本框
t5.setFont(new Font("宋体",Font.BOLD,14));
t5.setBounds(200,153,30,20);
af.add(t5);
ButtonGroup bg=new ButtonGroup();//添加单选按钮组
final JRadioButton man=new JRadioButton("男");//添加单选按钮 男
man.setFont(new Font("宋体",Font.BOLD,16));
bg.add(man);
man.setBounds(100,90,50,25);
af.add(man);
final JRadioButton woman=new JRadioButton("女");//添加单选按钮 女
woman.setFont(new Font("宋体",Font.BOLD,16));
bg.add(woman);
woman.setBounds(170,90,50,25);
af.add(woman);
/*
* 添加按钮
*/
JButton b1=new JButton("确定增加");
af.add(b1);
b1.setBounds(10,225,100, 25);
JButton b2=new JButton("重置信息");
af.add(b2);
b2.setBounds(120,225,100, 25);
JButton b3=new JButton("取消增加");
af.add(b3);
b3.setBounds(230,225,100, 25);
b1.addActionListener(new ActionListener() { //b1按钮监听
@Override
public void actionPerformed(ActionEvent e) {//b1按钮响应
// TODO 自动生成的方法存根
int p=0;
int q=0; //判断录入时该电话号码是否存在
//电话号码不能相同
try(FileReader reader=new FileReader("D:\\user.txt");//读user文件
BufferedReader br=new BufferedReader(reader);) {//以行为单位读取数据
String line=null; //定一个字符串用于存储将读取的文本
while((line=br.readLine()) != null) { //以行为单位读取文本(readLine),若文本内容不为空
p++; //判断是否是修改操作
String t; //用于比较信息前面的内容
if((line.length()>=5)&&line.charAt(4)==':') { //获取电话
t=line.substring(5);//txt中含"电话号码:"
}else {
t=line;
}
if(p!=ReviseJFrame.l1&&t.equals(t2.getText())) { //判断是否是修改操作和电话是否相同
q=1;
break;
}
}
} catch (IOException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
}
//判断录入成功的条件
if( t1.getText().length()!=0&& //判断文本框内的信息是否为空
(man.isSelected()||woman.isSelected())&&
t2.getText().length()!=0&&
t3.getText().length()!=0&&
t4.getText().length()!=0&&
t5.getText().length()!=0 ) {
if(q==0) { //电话不相同的时候
if(Integer.parseInt(t4.getText())<=2018&& //判断文本框内的信息是否合法
Integer.parseInt(t4.getText())>=1918) {
if(Integer.parseInt(t5.getText())<=12&&
Integer.parseInt(t5.getText())>=1) {
if(t2.getText().length()==11) {
System.out.println(ReviseJFrame.bl1);
//用户修改操作
if(ReviseJFrame.bl1==true) { //用户账单中的电话号码的行数正确时
try(FileInputStream reader=new FileInputStream("D:\\user.txt"); //字节流读文件
InputStreamReader isr = new InputStreamReader(reader); //字节流读数据
BufferedReader br=new BufferedReader(isr);) { //以行读数据
StringBuffer sb=new StringBuffer(); //字符串修改
String line=null; //文本内容不为空时
int i=0;
for(int j=1;(line=br.readLine()) != null;j++) {
br.mark(1); //标记流所在位置
br.reset(); //嵌套使用,返回流位置
if(j==ReviseJFrame.l1-3){ //指定行
sb=sb.append("姓名:"+t1.getText()); //在选定元素后加入指定内容
sb=sb.append(System.getProperty("line.separator")); //换行
}else if(j==ReviseJFrame.l1-2){
if(man.isSelected()==false&&woman.isSelected()==true){
sb=sb.append("性别:"+"女");
}
if(man.isSelected()==true&&woman.isSelected()==false) {
sb=sb.append("性别:"+"男");
}
sb=sb.append(System.getProperty("line.separator")); //换行
}else if(j==ReviseJFrame.l1-1) {
sb=sb.append("出生年月:"+t4.getText()+"."+t5.getText());
sb=sb.append(System.getProperty("line.separator"));
}else if(j==ReviseJFrame.l1) {
sb=sb.append("电话号码:"+t2.getText());
sb=sb.append(System.getProperty("line.separator"));
}else if(j==ReviseJFrame.l1+1) {
sb=sb.append("居住地址:"+t3.getTex
评论1
最新资源