Plantilla de dibujo grupal
Importar Java .dimensión; evento de escucha de acción;
Importar evento de clave de Java
. .archivo;
Importar flujo de salida de archivo Java .io;
Importar excepción de .io Java;
Importar flujo de salida Java. /p>
Importar Java .al azar
Importar Javax . . swing . jframe;
Importar javax .jscrollpane
Importar javax . >
La clase pública Ballot extiende JFrame para implementar ActionListener, KeyListener{
//Construcción de ventanas, variables miembro
JTextArea _ txt
JButton _ ballot
p>JTextField _ print
JScrollPane _ panel
int n _ o _ p
int index
int _ index
String[] nombre;
vector estático<inteteger>num=nuevo vector<intger>();
estático aleatorio r= nuevo Aleatorio(); p>
//
Boolean num _ print = true
Public static void main(String[] args) {
Nueva boleta();
}
Boleta Pública()
{
n _ o _ p = 0
Índice; = 0;
_ index = 0;
_ txt = new JTextArea();
_txt.setText("Ingrese el número de personas arriba y ¡Presiona Enter para finalizar! ");
_ txt . set editable(false);
_ panel = new JScrollPane(_ txt);
_ballot=new JButton("Lotería ");
_ print = new JTextField(10);
este . establecer diseño(nuevo BorderLayout());
this.add(_panel, BorderLayout.center);
this.add(_print, BorderLayout.North);
this.add(_ballot, BorderLayout.South);
_ print . addkey listener(this);
_ballot . addactionlistener(this);
this . set visible(true);
this.setSize(nueva dimensión (. 400, 200));
this .setdefaultcloseoperation(JFrame.
EXIT _ ON _ CLOSE);
}
@override
acción de anulación pública realizada (evento de acción e){
// TODO fragmento de método generado automáticamente
if(e.getSource()==_ballot)
{
if(index == n _ o _ p & amp ;& amp_index!=index)
{
booleano _ b = verdadero
mientras(_b)
{
int _ I = r . nextint(index);
for(int I = 0; i<num . size(); i++)
{
if(_i==num.get(i))
{
num . r \ n r \ nNúmero de serie "+_ I+" Nombre:"+nombres[_ index]);
_ index++;
_ b = false;
_ index++ p>
}
}
}
}
if(_index==index)
{
Archivo f = nuevo Archivo(system . getproperty(" usuario . dir ")+"/save . txt "); ))
{
Pruebe {
escritor de flujo de salida ow = nuevo escritor de flujo de salida (nuevo flujo de salida de archivo (f));
ow .write (_ txt . gettext());
ow close()
} catch (IOException e1) {
//TODO automáticamente bloque de captura generado
e 1. printstacktrace();
}
}else
{
intenta {
f . crear nuevo archivo();
escritor de flujo de salida ow = nuevo escritor de flujo de salida (flujo de salida de nuevo archivo (f));
escribir. (_ txt . gettext());
ow . close();
} catch (IOException e1) {
//TODO bloque de captura generado automáticamente
e 1. printstacktrace();
}Finalmente
{
_txt.setText("La información se puede guardar en "+ f. getPath()+"¡Abajo! ");
}
}
}
}
}
@Override
Clave de anulación pública (evento clave e) {
//TODO código auxiliar de método generado automáticamente
if(e.getKeyCode()==KeyEvent. VK _Enter)
{
if(num_print){
if(_print.getText().
match("[0-9]+")
{
num _ print = false
n _ o _ p = entero parse int(_). print . gettext());
nombres = nueva cadena [n _ o _ p]
_ print . .setText("¡Aún necesitas ingresar "+n_o_p+"nombre personal! ¡Presiona Enter para completar la entrada del nombre único!");
}De lo contrario
{
_txt .setText("¡El número de personas ingresadas es ilegal! ¡Vuelva a ingresar!");
}
}De lo contrario
{ p>
if (_print.getText()!= null & amp& amp!_print.getText().
Igual a (" " & amp& amp index!=n_o_p)
{
nombres[index]= _ print .
index++;<. /p> p>
_txt.setText("Aún necesitas ingresar "+(n_o_p-index)+"¡Nombre personal! ¡Ingresa para completar la entrada del nombre único!");
}
}
if(index==n_o_p)
{
for(int I = 0; i<index; i++)
{
num . add(I);
}
_txt.setText("¡Por favor, haga clic en el botón para sortear!");
}
}
}
@overwrite
clave pública nula liberada (evento clave e){
//TODO código auxiliar de método generado automáticamente
}
@Override
Nulo público escrito (KeyEvent e) {
/ /TODO código auxiliar de método generado automáticamente
}
}