第一次自己写的一个java的小东西,毕竟自己第一次写的,其中可谓是历经艰难,最后总结下来就是java实在是不适合写界面化的东西代码量比较大,这还不是最关键的,最关键的是控件的位置实在是太难控制了。

这是第一个界面的时候对于一些信息的保存

package pack;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.File;
import java.io.IOException;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import org.apache.commons.io.FileUtils;
import com.sun.org.apache.xpath.internal.FoundIndex;
import com.sun.swing.internal.plaf.basic.resources.basic;

public class Jiemian extends JFrame implements ActionListener {

	String sex;// /保存性别
	JTextField txt1 = new JTextField(25);
	JTextField txt2 = new JTextField(25);
	// JComboBox jc = new JComboBox();
	JRadioButton b1 = new JRadioButton("  男  ");
	JRadioButton b2 = new JRadioButton("  女  ");
	JTextField txt4 = new JTextField(25);
	JTextField txt5 = new JTextField(25);
	JTextField txt6 = new JTextField(25);
	JTextField txt7 = new JTextField(25);
	JButton cancel = new JButton("清空");
	JButton save = new JButton("保存");
	JButton jB = new JButton("抽奖");

	Jiemian() {
		sex = "男";
		// TODO Auto-generated method stub
		setTitle("学生信息录入");
		setSize(500, 500);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setLayout(new GridLayout(10, 1));

		// 面板1上的信息
		JLabel label = new JLabel("欢迎录入学生信息");
		label.setFont(new Font("", Font.BOLD, 25));
		Panel panel1 = new Panel();
		panel1.add(label);
		add(panel1);

		// 面板2上的信息
		Panel panel2 = new Panel();
		JLabel label1 = new JLabel("学   号:");
		label1.setFont(new Font("", Font.BOLD, 15));
		panel2.add(label1);
		panel2.add(txt1);
		add(panel2);

		// 面板3上的信息
		Panel panel3 = new Panel();
		JLabel label2 = new JLabel("姓   名:");
		label2.setFont(new Font("", Font.BOLD, 15));
		panel3.add(label2);
		panel3.add(txt2);
		add(panel3);

		// 面板4上的信息
		Panel panel4 = new Panel();
		JLabel label3 = new JLabel("性   别:");
		label3.setFont(new Font("", Font.BOLD, 15));
		JLabel l1 = new JLabel(
				"                                                         ");
		// /jc.addItem("     男      ");
		// jc.addItem("     女      ");
		panel4.add(label3);
		ButtonGroup bg = new ButtonGroup();// /单选按钮必须放到ButtonGroup中caikeyong
		bg.add(b1);
		bg.add(b2);
		panel4.add(b1);
		panel4.add(b2);
		// panel4.add(jc);
		panel4.add(l1);
		add(panel4);
		b1.setSelected(true);// /最开始的时候应该选择性别男

		// 面板5上的信息
		Panel panel5 = new Panel();
		JLabel label4 = new JLabel("宿舍号:");
		label4.setFont(new Font("", Font.BOLD, 15));
		panel5.add(label4);
		panel5.add(txt4);
		add(panel5);

		// 面板6上的信息
		Panel panel6 = new Panel();
		JLabel label5 = new JLabel("班   级:");
		label5.setFont(new Font("", Font.BOLD, 15));
		panel6.add(label5);
		panel6.add(txt5);
		add(panel6);

		// 面板7上的信息
		Panel panel7 = new Panel();
		JLabel label6 = new JLabel("手机号:");
		label6.setFont(new Font("", Font.BOLD, 15));
		panel7.add(label6);
		panel7.add(txt6);
		add(panel7);

		// 面板8上的信息
		Panel panel8 = new Panel();
		JLabel label7 = new JLabel("籍   贯:");
		label7.setFont(new Font("", Font.BOLD, 15));
		panel8.add(label7);
		panel8.add(txt7);
		add(panel8);

		// 面板9上的信息
		Panel panel9 = new Panel();
		JLabel l2 = new JLabel("                            ");
		panel9.add(cancel);
		panel9.add(l2);
		panel9.add(save);
		add(panel9);

		// 按钮添加监听
		cancel.addActionListener(this);
		save.addActionListener(this);
		jB.addActionListener(this);
		b1.addActionListener(this);
		b2.addActionListener(this);

		// 面板10上的信息
		Panel panel0 = new Panel();
		panel0.add(jB);
		add(panel0);

		setVisible(true);
		validate();
	}

	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		if (e.getSource() == cancel)// /选择的为清空地话,就清空所有的信息
		{
			clear();
		} else if (e.getSource() == save)// 为保存的话,就保存到文本文档
		{
			save1();
			JOptionPane.showMessageDialog(null, "保存信息成功!");
		} else if (e.getSource() == jB) {
			new Choose();
		} else {

			sex = e.getActionCommand().trim();// /保存到选中的信息
		}
	}

	public void clear()// /清空
	{
		txt1.setText("");
		txt2.setText("");
		// jc.setSelectedIndex(0);
		b1.setSelected(true);
		txt4.setText("");
		txt5.setText("");
		txt6.setText("");
		txt7.setText("");
	}

	public void save1()// 保存
	{
		String str;
		str = txt1.getText();
		str += "@" + txt2.getText();
		// str+="@"+ jc.getSelectedItem().toString().trim();
		str += "@" + sex;
		str += "@" + txt4.getText();
		str += "@" + txt5.getText();
		str += "@" + txt6.getText();
		str += "@" + txt7.getText();
		FileUtils fileUtils = new FileUtils();
		File file = new File("./1.txt");
		try {
			fileUtils.write(file, str + "\r\n", true);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new Jiemian();
	}
}

第二个界面的时候相当于是那个随机读取出文本文档中的某条信息

package pack;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import org.apache.commons.io.FileUtils;
public class Choose extends JFrame implements ActionListener {

	JButton btn = new JButton("开始");//按按钮开始滚动产生随机中奖者姓名或者停止
	JButton btn1 = new JButton("显示详细信息");//按动该按钮显示中奖者的详细信息
	JTextField txt1 = new JTextField(10);
	int flag = 0;//作为到底是该残生随机数还是停止的标志
	List list=null;//一个集合,可以保存任何类型的数据
	int num;
	String []name=null;
	
	//读出文本中的内容
	public   void du()
	{
		FileUtils fileUtils=new FileUtils();//定义一个文件操作类
		try {
			list=fileUtils.readLines(new File("./1.txt"));///将文件中的内容读出来,保存到List集合中
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	//对于第2个界面的整个的控制
	public Choose() {
		// TODO Auto-generated constructor stub
		setSize(300, 300);
		setVisible(true);
		setLayout(new GridLayout(3, 1));
		
		//面板3,作用只是吧布局给弄得顺眼点
		Panel panel3 = new Panel();
		panel3.add(new JLabel("             "));
		add(panel3);
		
		
		// 面板1上的信息
		Panel panel1 = new Panel();
		JLabel label1 = new JLabel("中奖的同学为:");
		label1.setFont(new Font("", Font.BOLD, 25));//label1的文本的字体设置
		panel1.add(label1);
		panel1.add(txt1);
		txt1.setFont(new Font("", Font.BOLD, 15));///txt1的字体和文本的设置
		panel1.add(btn);
		add(panel1);
		
		//给两个按钮添加监听
		btn.addActionListener(this);
		btn1.addActionListener(this);
		btn1.setEnabled(false);///最开始的时候显示详细信息按钮不可用
		
		//面板2上的信息
		Panel panel2=new Panel();
		panel2.add(btn1);
		add(panel2);
		
		du();///最开始的时候就将文件读出来,避免下面每次都得读一次
		validate();
	}

	public static void main(String[] args) throws IOException {
		new Choose();

	}
	
    Timer timer ;//设置时间监听
    class Task extends TimerTask//监听时发生的事件
    {
		public void run() {
			// TODO Auto-generated method stub
		    Random random =new Random();//随机数函数
		    num=random.nextInt(list.size());///使产生的随机数在信息条数内
			name=list.get(num).toString().split("@");///用@符号将存入的信息分割开
			txt1.setText(name[1]);///将名字存到文本框
			//System.out.println("Hhhhhhhjhhhhh");
		}
    }
    
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		if (e.getSource() == btn)
		{
			if (flag % 2 == 0) //单数次点击的话,现在开始滚动产生中奖者
			{
				btn.setText("停止");//按钮上的提示信息就该是停止了
				flag++;
				timer=new Timer();
				timer.schedule(new Task(), 0,100);///任务的进行和时间间隔
				btn1.setEnabled(false);///显示详细信息的控件依旧不可用
			} 
			else 
			{
				btn.setText("开始");///按钮上的提示文字改变为开始
				flag++;
				timer.cancel();///计时器结束
				btn1.setEnabled(true);//显示详细信息的按钮可用
			}
		} 
		else
		{
			///弹出一个窗体显示具体的信息
			String info="学   号:"+name[0]+"\n";
			info+="姓   名:"+name[1]+"\n";
			info+="性   别:"+name[2]+"\n";
			info+="宿舍号:"+name[3]+"\n";
			info+="班   级:"+name[4]+"\n";
			info+="电   话:"+name[5]+"\n";
			info+="籍   贯:"+name[6]+"\n";
            JOptionPane.showMessageDialog(null,info );
		}
	}
}
posted on 2017-05-28 18:01  渡……  阅读(269)  评论(0编辑  收藏  举报