JAVA学习笔记(六)

import java.awt.BorderLayout;

import java.awt.ScrollPane;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.HashSet; import java.util.Random;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextArea;

public class cj extends JFrame{ public cj(){ this.setTitle("抽奖系统");

this.setSize(250, 180);

this.setResizable(false);

this.setLocationRelativeTo(this);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

this.setContentPane(createContentPanel());

}

private JPanel createContentPanel()

{

JPanel panel=new JPanel(new BorderLayout());

panel.add(BorderLayout.CENTER,createCeterPanel());

return panel;

}

private JPanel createCeterPanel(){ JPanel panel=new JPanel();

panel.add(new JLabel("点击抽奖"),JLabel.CENTER);

JButton start=new JButton("开始"); panel.add(start);

ScrollPane sp = new ScrollPane(ScrollPane.SCROLLBARS_AS_NEEDED);

final JTextArea area = new JTextArea();

sp.add(area); panel.add(sp,BorderLayout.SOUTH);

start.addActionListener(new ActionListener()

{

    @Override
    public void actionPerformed(ActionEvent arg0) {
        // TODO Auto-generated method stub
        Random random = new Random();
         Object[] values = new Object[6];
         HashSet hashSet = new HashSet();
           for(int i = 0;i < values.length;i++){
               int number = random.nextInt(1000) + 1;
               hashSet.add(number);
           }

           values = hashSet.toArray();

           area.append("一等奖号码为:"+values[0] + "\n");
           area.append("二等奖号码为:"+values[1]+" " +values[2]+"\n");
           area.append("二等奖号码为:"+values[3]+" "+values[4]+" "+values[5]+"\n");
    }
});
 return panel;
 }

public static void main(String[] args) { new cj().setVisible(true);

}

}

时间: 2024-08-07 12:45:59

JAVA学习笔记(六)的相关文章

JAVA学习笔记(六十一)- 反射Reflection

反射Reflection import java.lang.reflect.Modifier; /* * 反射Reflection * java.lang.Class类 */ public class Test01 { public static void main(String[] args) { String name = "tom"; // 方式一:通过对象getClass()方法 // 任意一个类的对象,都有一个getClass()方法 // 可以通过此获取获取当前对象的类型所

Java学习笔记六(I/O流)

1.介绍 在实际开发过程中经常会用到数据的输入/输出操作,本篇博客着重分析一下,java中经常用到的有关IO操作的类.而在java中可以将常用的流分为两个部分:字节流和字符流. 1.流的抽象基类 字节流 字符流 输入流 InputStream Reader 输出流 OutPutStream Writer 正如上图表格所示,字符和字节流都有自己的基类,其余的都是继承基类的扩展流的操作.下面会着重的讲解一下.(只要会了字符流,字节流与其操作一样,只不过操作的文件类型不一致而已) 2.字符流 专门用于

java学习笔记(六)继承

继承是面向对象编程中最重要的特征之一,它允许通过继承一个已经存在的类,来编写一个新类.已有的类称为父类,也可以称为基类,超类,新类称为子类也称为派生类. 继承使用关键字extends,用在类名之后,例:public void class salary extends Employee(){ } 子类salary 继承父类Employee java中的类只能继承一个类. 子类能继承父类中用public protected 修饰的成员. 继承的单根性(单继承):一个java类只能有一个父类. 继承的

Java学习笔记六:多态

多态通过分离“做什么”和“怎么做”,从另一个角度讲接口和实现分离开来.多态的作用是消除类型之间的耦合关系,多态方法调用允许一种类型表现出与其他相似类型之间的区别,只要他们都是从同一个基类导出而来的. 1.方法参数中传入基类,可以使子类方便调用 class Instrument { public void play(Note n) { System.out.println("Instrument.play()"); } } class Wind extends Instrument {

java学习笔记六——数组

数组类型 数组是一种常见的数据结构,可用于存放多个数据,每一个数组元素存放一个数据,通常可以通过下标进行访问其元素. Java数组要求所有数组元素具有相同的数据类型.因此,数组元素的数据类型是唯一的. 数组定义如下: type[] arrayName; //推荐使用 type arrayName[]; //不推荐使用 通常我们都使用第一种方式.注意:数组的定义不能指定数组长度,只有在初始化时才指定长度. 数组初始化: int[] intArr = new int[]{1,2,3,4,5}; //

黑马程序员——JAVA学习笔记六(多线程)

1,    什么是多线程?一个程序可以执行多个任务,每一个任务称为一个线程,运行多个线程的程序称为多线程程序. 进程:正在进行中的程序(直译). 线程:进程中一个负责程序执行的控制单元(执行路径).   多线程的好处:解决了多部分代码同时运行的问题.多线程的弊端:线程太多,会导致效率的降低. 其实,多个应用程序同时执行都是CPU在做着快速的切换完成的.这个切换是随机的.CPU的切换是需要花费时间的,从而导致了效率的降低 2 ,    创建线程方式:  创建线程方式一:继承Thread类 1.定义

JAVA学习笔记(六十)- 网络编程登录实例

客户端 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.ObjectOutputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.net.Socket; import ja

java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)

java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessController的checkPerssiom方法,访问控制器AccessController的栈检查机制又遍历整个 PerssiomCollection来判断具体拥有什么权限一旦发现栈中一个权限不允许的时候抛出异常否则简单的返回,这个过程实际上比我的描述要复杂 得多,这里我只是简单的一句带过,因为这

【Java学习笔记之二十六】深入理解Java匿名内部类

在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意的事项.如何初始化匿名内部类.匿名内部类使用的形参为何要为final. 一.使用匿名内部类内部类 匿名内部类由于没有名字,所以它的创建方式有点儿奇怪.创建格式如下: new 父类构造器(参数列表)|实现接口() { //匿名内部类的类体部分 } 在这里我们看到使用匿名内部类我们必须要继承一个父类或者

非专业码农 JAVA学习笔记 6java工具类和算法-string

续<非专业码农 JAVA学习笔记 5 java工具类和算法> 五.字符串string 字符串和字符的差别:字符串双引号括起来”n”,字符用单引号括起来,表示一种符号’\n’ 1.string的主要方法和属性 类 方法或者属性 备注 定义string Stirng s=new string(“值”),string s=”值” 属性 string.length:string的长度为字节 方法startswith,endswith s.startwith(“值”)-以值为开头,s.endswith(