第一次自己写的一个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 );
}
}
}

第一个java的小东西的更多相关文章

  1. 一个Java线程小例子(仿火车票售卖)

    public class MyThread extends Thread{ private static int ticket=100; public void run(){ for(int i=0; ...

  2. 一个Java的小问题

    老师今天在讨论群里抛出了一个问题,让大家尝试思考一下他所给的一段代码输出是什么. 其代码如下: class T { void foo() { this.bar(); } void bar() { Sy ...

  3. 福利贴——爬取美女图片的Java爬虫小程序代码

    自己做的一个Java爬虫小程序 废话不多说.先上图. 目录命名是用标签缩写,假设大家看得不顺眼能够等完成下载后手动改一下,比方像有强迫症的我一样... 这是挂了一个晚上下载的总大小,只是还有非常多由于 ...

  4. 在ASP.NET下做了一个实验MVC的小东西

    星期五下班前一时兴起,对MVC发表了一点看法.后来就想干脆弄个小东西来验证一些自己的想法帮组理清思路.所要源代码的免了,3个小时的急就章实在是乱得可以,既没有好的架构,也没有任何代码质量可言,主要是实 ...

  5. Java学习笔记二十九:一个Java面向对象的小练习

    一个Java面向对象的小练习 一:项目需求与解决思路: 学习了这么长时间的面向对象,我们只是对面向对象有了一个简单的认识,我们现在来做一个小练习,这个例子可以使大家更好的掌握面向对象的特性: 1.人类 ...

  6. webmagic的设计机制及原理-如何开发一个Java爬虫

    之前就有网友在博客里留言,觉得webmagic的实现比较有意思,想要借此研究一下爬虫.最近终于集中精力,花了三天时间,终于写完了这篇文章.之前垂直爬虫写了一年多,webmagic框架写了一个多月,这方 ...

  7. 做为一个Java程序员,你需要哪些傍身的技能?

    最近总有些断断续续的思考,想想从我入行以来,我到底学会了什么,做成过什么,以后要做什么,如何提升自己······· 工作3年了,常听人说3年,5年,10年是程序员的坎,每过一个都会有新的想法,新的改变 ...

  8. 编写你的第一个 Java 版 Raft 分布式 KV 存储

    前言 本文旨在讲述如何使用 Java 语言实现基于 Raft 算法的,分布式的,KV 结构的存储项目.该项目的背景是为了深入理解 Raft 算法,从而深刻理解分布式环境下数据强一致性该如何实现:该项目 ...

  9. webmagic的设计机制及原理-如何开发一个Java爬虫 转

    此文章是webmagic 0.1.0版的设计手册,后续版本的入门及用户手册请看这里:https://github.com/code4craft/webmagic/blob/master/user-ma ...

随机推荐

  1. fidder工具学习抓取Firefox包

    fidder抓取Firefox的https请求 抓包之前需要设置fidder,我下面的截图是fidder4,打开fidder—>Tools—>Options如图: 选择https,勾选所有 ...

  2. 第八篇Python基本数据类型之列表、元组与字典

    列表 写在最前,必须要会的:append(),extend(),insert(),索引,切片,循环 list  是一个类,是个对象 列表用 方括号[]括起来的,[]内以逗号分割每个元素,列表中的元素可 ...

  3. LeetCode 215——数组中的第 K 个最大元素

    1. 题目 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 ...

  4. 官方文档 恢复备份指南六 Configuring the RMAN Environment: Advanced Topics

    RMAN高级设置. 本章内容: Configuring Advanced Channel Options  高级通道选项 Configuring Advanced Backup Options 高级备 ...

  5. HDU 4436 str2int(后缀自动机)(2012 Asia Tianjin Regional Contest)

    Problem Description In this problem, you are given several strings that contain only digits from '0' ...

  6. tcp四次撒手

    转自:http://www.cnblogs.com/cy568searchx/p/3711670.html 由于TCP连接是全双工的,因此每个方向都必须单独进行关闭.这个原则是当一方完成它的数据发送任 ...

  7. SQL Server Profiler的简单使用,方便查找和发现SQL执行的效率和语句问题

    1 打开Server Profiler 2 去掉不必要的干扰,数据库的连接和断开之类的 3. 选择“显示所有列”,之后在列表中,勾选“DatabaseName”项. 4设置筛选器,这里设置只是过滤数据 ...

  8. iOS-数据持久化之Sqllite

    iOS中的数据存储方式 Plist(NSArray\NSDictionary) Preference(偏好设置\NSUserDefaults) NSCoding(NSKeyedArchiver\NSk ...

  9. 【bzoj4627】[BeiJing2016]回转寿司 离散化+树状数组

    题目描述 给出一个长度为n的序列,求所有元素的和在[L,R]范围内的连续子序列的个数. 输入 第一行包含三个整数N,L和R,分别表示寿司盘数,满意度的下限和上限. 第二行包含N个整数Ai,表示小Z对寿 ...

  10. WebApp之Meta标签总结

    在做WebApp的时候,少不了Meta标签引用,这里总结了下. <meta name="apple-touch-fullscreen" content="yes&q ...