编辑器使用Emacs
构建使用Ant
编程语言使用Java
一个简单的随机双色球号码生成器,写着玩的
Ant文件
<?xml version="1.0" encoding="UTF-8"?>
<project name="DoubleColorBalls" default="RunApp" basedir=".">
<!--dir properties-->
<property name="srcDir" location="src" />
<property name="classesDir" location="classes" />
<property name="binDir" location="bin" />
<!--warning:the jarName is "value",not "location"-->
<property name="jarName" value="DoubleColorBalls.jar"/>
<property name="packageName" location="${srcDir}\com\zr\${ant.project.name}"/>
<!--CreateDirs-->
<target name="CreateDirs">
<mkdir dir="${packageName}" />
<mkdir dir="${classesDir}" />
<mkdir dir="${binDir}" />
</target>
<!--DeleteDirs-->
<target name="DeleteDirs">
<delete dir="${srcDir}" />
<delete dir="${classesDir}" />
<delete dir="${binDir}" />
</target>
<!--Compile-->
<target name="Compile" depends="CreateDirs">
<javac srcdir="${srcDir}" destdir="${classesDir}"/>
</target>
<target name="RunApp" depends="Compile">
<jar destfile="${binDir}/${jarName}" basedir="${classesDir}">
<manifest>
<attribute name="Main-Class" value="com.zr.DoubleColorBalls.DCB_Main"/>
</manifest>
</jar>
</target>
</project>
Java文件:主函数
package com.zr.DoubleColorBalls;
import javax.swing.*;
public class DCB_Main{
public static void main(String[] args){
// DCB_Frame frame=new DCB_Frame();
JFrame frame=new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new DCB_Panel());
frame.setSize(600,100);
frame.setTitle("双色球计算器");
frame.setVisible(true);
}
}
Java文件:Swing的JPanel
package com.zr.DoubleColorBalls;
import javax.swing.*;
import java.awt.*;
import javax.swing.border.*;
import java.awt.event.*;
import java.util.Arrays;
class DCB_Panel extends JPanel{
//DataGenerator
private DataGenerator generator=null;
//gui
private GridLayout gridLayout=new GridLayout(1,7);
private JLabel redLabels[]=new JLabel[6];
private JLabel blueLabel=new JLabel();
private JButton runButton=new JButton("Run");
//constructor
public DCB_Panel(){
super();
generator=new DataGenerator();
setLayout(gridLayout);
//add red JLabels
for(int i=0;i<redLabels.length;i++){
redLabels[i]=new JLabel();
redLabels[i].setBorder(new EtchedBorder());
redLabels[i].setBackground(Color.red);
add(redLabels[i]);
}
//add blue JLabel
blueLabel.setBorder(new EtchedBorder());
blueLabel.setBackground(Color.blue);
add(blueLabel);
//add JButton
add(runButton);
runButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
Font font=new Font("Courier",Font.BOLD,30);
int red[]=new int[6];
int blue=0;
generator.generateData();
red=generator.getRedBallsArray();
Arrays.sort(red);
blue=generator.getBlueBall();
for(int i=0;i<red.length;i++){
redLabels[i].setHorizontalAlignment(JLabel.CENTER);
redLabels[i].setFont(font);
redLabels[i].setText(red[i]+"");
}
blueLabel.setFont(font);
blueLabel.setHorizontalAlignment(JLabel.CENTER);
blueLabel.setText(blue+"");
}
});
}
}
Java文件:随机生成号码的类
package com.zr.DoubleColorBalls;
import java.util.Random;
import java.util.Arrays;
class DataGenerator{
private int redBallsArray[]=new int[6];
private int blueBall=0;
private Random randomRed=new Random();
private Random randomBlue=new Random();
public DataGenerator(){
//clear the red and blue balls array
for(int i=0;i<redBallsArray.length;i++){
redBallsArray[i]=34;
}
blueBall=17;
}
public boolean isInRed(int temp){
for(int i=0;i<redBallsArray.length;i++){
if(temp==redBallsArray[i]){
return true;
}
}
return false;
}
//call red and blue ball generator
public void generateData(){
//generate red balls
for(int i=0;i<redBallsArray.length;i++){
redBallsArray[i]=generateRed(randomRed);
}
blueBall=generateBlue(randomBlue);
}
//generate red ball
public int generateRed(Random r){
int temp=r.nextInt(34);
while(isInRed(temp)==true || temp==0){
temp=generateRed(r);
}
return temp;
}
//generate blue ball
public int generateBlue(Random r){
int temp=r.nextInt(17);
while(temp==0){
temp=generateBlue(r);
}
return temp;
}
//getter
public int[] getRedBallsArray(){
return redBallsArray;
}
public int getBlueBall(){
return blueBall;
}
}