「java抽签问题」java随机抽题

博主:adminadmin 2022-12-08 16:42:12 67

本篇文章给大家谈谈java抽签问题,以及java随机抽题对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

求一个分组抽签程序,谢谢了,java

import java.awt.BorderLayout;

import java.awt.Dimension;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStreamWriter;

import java.util.Random;

import java.util.Vector;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.JTextField;

public class Ballot extends JFrame implements ActionListener,KeyListener{

//窗口组建,成员变量

JTextArea _txt;

JButton _ballot;

JTextField _print;

JScrollPane _panel;

int n_o_p;

int index;

int _index;

String[] names;

static VectorInteger num=new VectorInteger();

static Random r=new Random();

//

boolean num_print=true;

public static void main(String[] args) {

new Ballot();

}

public Ballot()

{

n_o_p=0;

index=0;

_index=0;

_txt=new JTextArea();

_txt.setText("请在上面输入人数,按Enter结束!");

_txt.setEditable(false);

_panel=new JScrollPane(_txt);

_ballot=new JButton("抽签");

_print=new JTextField(10);

this.setLayout(new BorderLayout());

this.add(_panel,BorderLayout.CENTER);

this.add(_print,BorderLayout.NORTH);

this.add(_ballot,BorderLayout.SOUTH);

_print.addKeyListener(this);

_ballot.addActionListener(this);

this.setVisible(true);

this.setSize(new Dimension(400,200));

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

if(e.getSource()==_ballot)

{

if(index==n_o_p_index!=index)

{

boolean _b=true;

while(_b)

{

int _i=r.nextInt(index);

for(int i=0;inum.size();i++)

{

if(_i==num.get(i))

{

num.remove(i);

_txt.append("\r\n序号"+_i+" 姓名:"+names[_index]);

_index++;

_b=false;

}

}

}

}

if(_index==index)

{

File f=new File(System.getProperty("user.dir")+"/Save.txt");

if(f.exists())

{

try {

OutputStreamWriter ow=new OutputStreamWriter(new FileOutputStream(f));

ow.write(_txt.getText());

ow.close();

} catch (IOException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

}else

{

try {

f.createNewFile();

OutputStreamWriter ow=new OutputStreamWriter(new FileOutputStream(f));

ow.write(_txt.getText());

ow.close();

} catch (IOException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}finally

{

_txt.setText("信息以保存至"+f.getPath()+"下!");

}

}

}

}

}

@Override

public void keyPressed(KeyEvent e) {

// TODO Auto-generated method stub

if(e.getKeyCode()==KeyEvent.VK_ENTER)

{

if(num_print){

if(_print.getText().matches("[0-9]+"))

{

num_print=false;

n_o_p=Integer.parseInt(_print.getText());

names=new String[n_o_p];

_print.setText("");

_txt.setText("还需要输入"+n_o_p+"个人名!按回车完成单个人名输入!");

}else

{

_txt.setText("输入的人数非法!请重新输入!");

}

}else

{

if(_print.getText()!=null!_print.getText().equals("")index!=n_o_p)

{

names[index]=_print.getText();

index++;

_txt.setText("还需要输入"+(n_o_p-index)+"个人名!按回车完成单个人名输入!");

}

}

if(index==n_o_p)

{

for(int i=0;iindex;i++)

{

num.add(i);

}

_txt.setText("请点击按钮进行抽签!");

}

}

}

@Override

public void keyReleased(KeyEvent e) {

// TODO Auto-generated method stub

}

@Override

public void keyTyped(KeyEvent e) {

// TODO Auto-generated method stub

}

}

java 随机数抽签

正常来讲,你使用Math.random()方法就能产生一个随机数的。

如果每次产生的随机数是一样的,你可以用

Random r = new Random();

int a = r.nextInt();来产生一个随机数的。

Random也是随机数的对象。

你可以查一下java的api做一个全面的了解。

JAVA抽签程序!

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.ArrayList;

import java.util.regex.Pattern;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextArea;

import javax.swing.JTextField;

class People

{

private String name;

private int id;

public People(String name)

{

this.name = name;

}

public void setID(int id)

{

this.id = id;

}

public String getName()

{

return name;

}

public int getId()

{

return id;

}

}

public class test3 extends JPanel

{

private JTextArea jtText;

private JButton jbOK;

private People[] peoples;

public test3()

{

this.setLayout(new GridLayout(1, 2));

jtText = new JTextArea();

this.add(jtText);

jbOK = new JButton("抽签");

this.add(jbOK);

jbOK.addActionListener(new ActionListener()

{

@Override

public void actionPerformed(ActionEvent e)

{

// TODO Auto-generated method stub

String[] names = jtText.getText().split("\n");

int count = Integer.parseInt(names[0]);

peoples = new People[count];

boolean[] hasVisited = new boolean[count + 1];

for(int i = 0 ; i  count ; i++)

{

peoples[i] = new People(names[i+1]);

int r;

while(true)

{

r = (int)(Math.random() * count) + 1;

if(!hasVisited[r])

{

peoples[i].setID(r);

hasVisited[r] = true;

break;

}

}

}

String text = "";

for(int i = 0 ; i  count ; i++)

{

text += peoples[i].getName();

text += "    ";

text += peoples[i].getId();

text += "\n";

}

jtText.setText(text);

}

});

}

public static void main(String[] args)

{

test3 panel = new test3();

JFrame frame = new JFrame();

frame.add(panel);

frame.setSize(300,300);

frame.setVisible(true);

}

}

java抽签小助手

public class Draw implements ActionListener

{

    private JFrame frame;

    private JTextArea input;

    private JTextField result;

    private JButton draw;

    private JLabel prompt;

    private JLabel luckName;

    private JPanel panel;

    private boolean flag = false;

    private ArrayListString names;

    File one = null;

    

    public Draw()

    {

        frame = new JFrame("抽签小助手");

        prompt = new JLabel("请输入人数和姓名:");

        Font font = new Font("黑体",Font.PLAIN,30);

        input = new JTextArea(40,30);

        input.setFont(font);

        luckName = new JLabel("幸运的名字:");

        result = new JTextField(20);

        result.setEditable(false);

        draw = new JButton("抽签");

        draw.addActionListener(this);

        panel = new JPanel();

        panel.add(luckName);

        panel.add(result);

        panel.add(draw);

        

        frame.setExtendedState(JFrame.MAXIMIZED_BOTH);

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frame.setLayout(new BorderLayout());

        frame.add(input, BorderLayout.CENTER);

        frame.add(panel, BorderLayout.SOUTH);

        frame.add(prompt,BorderLayout.NORTH);

        frame.setVisible(true);

    }

    public static void main(String[] args)

    {

        new Draw();

    }

    @Override

    public void actionPerformed(ActionEvent e)

    {

        if("抽签".equals(e.getActionCommand()))

        {

            if(flag == false)

            {

                inputName();

            }

            Random random = new Random();

            String luck = names.get(random.nextInt(names.size()));

            result.setText(luck);

            writeToFile(luck);

        }

    }

    private void inputName()

    {

        Scanner nameIn = new Scanner(input.getText());

        names = new ArrayListString();

        int n = nameIn.nextInt();

        for(int i =0;in;i++)

            names.add(nameIn.next());

        nameIn.close();

    }

    private boolean writeToFile(String name)

    {

        BufferedWriter bw = null;

        if(one == null)

            one = new File("one.txt");

        try

        {

            bw = new BufferedWriter(new FileWriter(one));

            bw.write(name);

        } catch (IOException e)

        {

            e.printStackTrace();

            return false;

        }

        finally

        {

            try

            {

                if(bw != null) bw.close();

            } catch (IOException e)

            {

                e.printStackTrace();

            }

        }

        return true;

    }

} 

 

输入时这样输入:10 tom tim trayvon alice alice sam king bob allen joy,当然你也可以自己再改一下。

java抽签问题的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java随机抽题、java抽签问题的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-08,除非注明,否则均为首码项目网原创文章,转载请注明出处。