第一次自己写的一个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. Kotlin 0

    #0 下载与配置: 官网上写的很详细,不再重复. #1 Hello world fun main(args: Array<String>) { println("Hello, w ...

  2. Autofac小例子

    AutoFac是.net平台下的IOC容器产品.今天学习一下它的使用方法. 1.最简单的使用. public interface ITestDao { string SayHello(); } pub ...

  3. C++学习014函数值传递和地址传递

    当我们给一个函数传参数的时候,可以直接值传入函数,也给可以把一个地址传入函数 区别就是一个本身不被改变,而另一本身也在改变, 在开发时候都会用到, 这里做下记录 #include <iostre ...

  4. zabbix 通过key(键值)获取信息

    在agent端进行修改264行,例如: UserParameter=get.os.type,head -1 /etc/issue 保存重启agent 验证 zabbix_get -s IP -k ge ...

  5. HDU 4782 Beautiful Soup (模拟+注意细节)

    思路就是用栈模拟,不用开实体的栈,直接记一个top指针就行. 说说这题的细节: 1.tag标签里的内容不要动,原样输出.比如<p aa bb cc>,就这样输出就行,不要删空格.题目中说了 ...

  6. eclipse快捷键(复制自己看)

    1几个最重要的快捷键 代码助手:Ctrl+Space(简体中文操作系统是Alt+/)快速修正:Ctrl+1单词补全:Alt+/打开外部Java文档:Shift+F2 显示搜索对话框:Ctrl+H快速O ...

  7. C++ Profiler工具之初体验

    http://www.cnblogs.com/likwo/archive/2012/12/20/2826988.html 转 http://www.cnblogs.com/lenolix/archiv ...

  8. Spring Data JPA 简单查询

    一.常用规则速查 1  And 并且2  Or  或3  Is,Equals 等于4  Between  两者之间5  LessThan 小于6  LessThanEqual   小于等于7  Gre ...

  9. JavaScript中常用转义字符

    \b   退格 \f   换页 \r   回车 \n   换行 \"   双引号 \'  单引号 \t  Tab字符 \\  反斜杠 \xnn  十六进制代码nn表示的字符 \unnnn 十 ...

  10. HTML5<canvas>标签:使用canvas元素在网页上绘制渐变和图像(2)

    详细解释HTML5 Canvas中渐进填充的参数设置与使用,Canvas中透明度的设置与使用,结合渐进填充与透明度支持,实现图像的Mask效果. 一:渐进填充(Gradient Fill) Canva ...