zoukankan      html  css  js  c++  java
  • 第一个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 + "
    ", 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]+"
    ";
    			info+="姓   名:"+name[1]+"
    ";
    			info+="性   别:"+name[2]+"
    ";
    			info+="宿舍号:"+name[3]+"
    ";
    			info+="班   级:"+name[4]+"
    ";
    			info+="电   话:"+name[5]+"
    ";
    			info+="籍   贯:"+name[6]+"
    ";
                JOptionPane.showMessageDialog(null,info );
    		}
    	}
    }
    
  • 相关阅读:
    Codeforces Round #601 (Div. 2)
    A. A Serial Killer
    B. Sherlock and his girlfriend
    Codeforces Round #600 (Div. 2)
    Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2) C. Magic Grid
    7213:垃圾炸弹
    2011
    Educational Codeforces Round 46 (Rated for Div. 2)
    Stall Reservations
    Pots
  • 原文地址:https://www.cnblogs.com/cmmdc/p/6916238.html
Copyright © 2011-2022 走看看