「java抽签问题」java随机抽题
本篇文章给大家谈谈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抽签问题的信息别忘了在本站进行查找喔。
发布于:2022-12-08,除非注明,否则均为
原创文章,转载请注明出处。