第一个java的小东西
第一次自己写的一个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的小东西的更多相关文章
- 一个Java线程小例子(仿火车票售卖)
public class MyThread extends Thread{ private static int ticket=100; public void run(){ for(int i=0; ...
- 一个Java的小问题
老师今天在讨论群里抛出了一个问题,让大家尝试思考一下他所给的一段代码输出是什么. 其代码如下: class T { void foo() { this.bar(); } void bar() { Sy ...
- 福利贴——爬取美女图片的Java爬虫小程序代码
自己做的一个Java爬虫小程序 废话不多说.先上图. 目录命名是用标签缩写,假设大家看得不顺眼能够等完成下载后手动改一下,比方像有强迫症的我一样... 这是挂了一个晚上下载的总大小,只是还有非常多由于 ...
- 在ASP.NET下做了一个实验MVC的小东西
星期五下班前一时兴起,对MVC发表了一点看法.后来就想干脆弄个小东西来验证一些自己的想法帮组理清思路.所要源代码的免了,3个小时的急就章实在是乱得可以,既没有好的架构,也没有任何代码质量可言,主要是实 ...
- Java学习笔记二十九:一个Java面向对象的小练习
一个Java面向对象的小练习 一:项目需求与解决思路: 学习了这么长时间的面向对象,我们只是对面向对象有了一个简单的认识,我们现在来做一个小练习,这个例子可以使大家更好的掌握面向对象的特性: 1.人类 ...
- webmagic的设计机制及原理-如何开发一个Java爬虫
之前就有网友在博客里留言,觉得webmagic的实现比较有意思,想要借此研究一下爬虫.最近终于集中精力,花了三天时间,终于写完了这篇文章.之前垂直爬虫写了一年多,webmagic框架写了一个多月,这方 ...
- 做为一个Java程序员,你需要哪些傍身的技能?
最近总有些断断续续的思考,想想从我入行以来,我到底学会了什么,做成过什么,以后要做什么,如何提升自己······· 工作3年了,常听人说3年,5年,10年是程序员的坎,每过一个都会有新的想法,新的改变 ...
- 编写你的第一个 Java 版 Raft 分布式 KV 存储
前言 本文旨在讲述如何使用 Java 语言实现基于 Raft 算法的,分布式的,KV 结构的存储项目.该项目的背景是为了深入理解 Raft 算法,从而深刻理解分布式环境下数据强一致性该如何实现:该项目 ...
- webmagic的设计机制及原理-如何开发一个Java爬虫 转
此文章是webmagic 0.1.0版的设计手册,后续版本的入门及用户手册请看这里:https://github.com/code4craft/webmagic/blob/master/user-ma ...
随机推荐
- Dos命令%date:~0,10%
在使用命令对数据库备份的时候,想让备份的文件以当天的日期命名.需要获取当天的日期,获取当天的日期用date命令,获取当天的时间用time命令.但时间和日期一般都是有一定格式的,而使用的时候,是不想用那 ...
- 七天入门C++
- CentOS7 Zabbix4.0环境下的安装和配置实例
1.安装准备 Zabbix4.0对基础架构有一定的要求,对的英文尤其PHP状语从句:MySQL: 类型 内容 服务端运行环境 Linux和PHP与Web服务器和数据库 服务端操作系统 CentOS7. ...
- 第一课:SVN代码管理
SVN:是一个跨平台的开源的版本控制系统.svn版本管理工具管理着随时间改变的各种数据.这些数据放置在一个中央资料档案库中.svn会备份并记录每个文件每次的修改更新变动.svn的工作流程:1.在中央库 ...
- element-ui的el-tabel组件怎么使用type=“expand”实现表格嵌套并且在子表格没有数据的时候隐藏展开按钮
效果如下: 试过很多种办法,思路都在怎么控制<el-table-column type="expand">里面的type上,比如使用v-show等等,但是发现,要不就是 ...
- 一个python游戏源码
#finalPyPong.py import pygame,sys class MyBallClass(pygame.sprite.Sprite): def __init__(self,image_f ...
- [剑指Offer] 21.栈的压入、弹出序列
题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序 ...
- P1404 平均数
题目描述 给一个长度为n的数列,我们需要找出该数列的一个子串,使得子串平均数最大化,并且子串长度>=m. 输入输出格式 输入格式: N+1行, 第一行两个整数n和m 接下来n行,每行一个整数a[ ...
- 算法学习——kruskal重构树
kruskal重构树是一个比较冷门的数据结构. 其实可以看做一种最小生成树的表现形式. 在普通的kruskal中,如果一条边连接了在2个不同集合中的点的话,我们将合并这2个点所在集合. 而在krusk ...
- [Leetcode] count and say 计数和说
The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...