Java编写的双色球计算器(不使用IDE)

本文介绍了如何在不使用IDE的情况下,通过Emacs编辑器和Ant构建工具,用Java编程语言实现一个简单的双色球号码随机生成器。文章包含Ant构建文件和Java源代码的详细说明,包括主函数、Swing的JPanel以及专门用于随机生成号码的类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编辑器使用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;
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值