현재 위치 - 주공해몽공식사이트 - 랜덤 번호 뽑기 점술 - 추첨 및 그룹화 절차

추첨 및 그룹화 절차

Java.awt.borderlayout 을 가져옵니다.

Java.awt.dimension 을 가져옵니다.

Java.awt.event.actionevent 가져오기

Java.awt.event.actionlistener 를 가져옵니다.

Java.awt.event.keyevent 를 가져옵니다.

Java.awt.event.keylistener 를 가져옵니다.

Java.io.file 을 가져옵니다

Java.io.fileoutputstream 을 가져옵니다.

Java.io.ioexception 을 가져옵니다.

Java.io.outputstreamwriter 가져오기

Java.util.random 을 가져옵니다.

Java.util.vector 가져오기

Javax.swing.jbutton 을 가져옵니다.

Javax.swing.jframe 을 가져옵니다.

Javax.swing.jscrollpane 을 가져옵니다.

Javax.swing.jtextarea 가져오기 :

Javax.swing.jtextfield 가져오기 :

공용 클래스 Ballot 확장 JFrame 구현 ActionListener, KeyListener{

//창 빌드, 멤버 변수

JTextArea _ txt

JButton _ ballot

JTextField _ print

JScrollPane _ panel

Int n _ o _ p;;

Int 인덱스

Int _ index

문자열 [] 이름;

정적 벡터< 정수 & gtnum = 새 벡터< 정수> ();

정적 무작위 r = new random ();

//

부울 num _ print = true

공용 정적 void main(String[] args) {

새 투표 용지 ();

}

공개 투표 ()

{

N _ o _ p = 0;;

색인 = 0;

_ index = 0;;

_ txt = new jtextarea ();

_txt.setText ("위에 인원수를 입력해주세요. 캐리지 리턴이 끝납니다!" " );

_ txt.seteditable (false);

_ panel = new jscrollpane (_ txt);

_ballot=new JButton ("추첨");

_ print = new jtextfield (10);

This.setlayout (new borderlayout ());

This.add(_panel, BorderLayout. 센터);

This.add(_print, BorderLayout. 북쪽);

This.add(_ballot, BorderLayout. 남);

_ print.addkey listener (this);

_ ballot.addactionlistener (this);

This.setvisible (true);

This.setSize (새 차원 (400, 200));

This.setdefaultcloseoperation (jframe) 입니다. Exit _ on _ close);

}

@ 덮어쓰기

Public void action performed (actionevent e) {

// TODO 자동으로 생성된 메소드 스텁

If (e.getsource () = = = _ ballot)

{

If(index = = n _ o _ p & amp;; & amp_index! = 색인)

{

부울 _ b = 참

While(_b)

{

Int _ I = r.nextint (인덱스);

For(int I = 0;; 나 & ltnum.size (); I++)

{

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

{

Num.remove (I);

_ _ txt. append(" \ r \ n r \ n 일련 번호 "+_ I+"name: "+names [_ index]);

_ index++;+;

_ b = 거짓;

}

}

}

}

If(_index==index)

{

Filef = newfile (system.getproperty ("user.dir")+"/save.txt");

If(f.exists ())

{

시도 {

Output streamwriter ow = new output streamwriter (new file output stream (f));

Ow.write (_ txt.gettext ());

Ow.close ();

} catch (IOException e 1) {

// TODO 자동으로 생성된 catch 블록

E1.printstacktrace ();

}

} 그렇지 않으면

{

시도 {

F.createnewfile ();

Output streamwriter ow = new output streamwriter (new file output stream (f));

Ow.write (_ txt.gettext ());

Ow.close ();

} catch (IOException e 1) {

// TODO 자동으로 생성된 catch 블록

E1.printstacktrace ();

} 마지막으로

{

_txt.setText ("정보는" +f.getPath()+ "에 저장할 수 있습니다!" );

}

}

}

}

}

@ 덮어쓰기

공용 void 키 (키 이벤트 e) {

// TODO 자동으로 생성된 메소드 스텁

If (e.getkeycode () = = = keyevent. VK _ 캐리지 리턴)

{

If(num_print){

If(_print.getText (). 일치 ("[0-9]+")

{

Num _ print = false

N _ o _ p = integer.parseint (_ print.gettext ());

Names = 새 문자열 [n _ o _ p];

_ print.settext ("");

_txt.setText ("개인 이름" +n_o_p+ "도 입력해야 합니다! 캐리지 리턴은 단일 이름 입력을 완료합니다! );

} 그렇지 않으면

{

_txt.setText ("입력한 인원 수가 유효하지 않습니다! 다시 입력해 주세요! );

}

} 그렇지 않으면

{

If(_print.getText ()! = null & amp& amp! _print.getText () 를 참조하십시오. 같음 (""& amp& amp 지수! =n_o_p)

{

Names [index] = _ print.gettext ();

인덱스++;

_txt.setText ("또한" +(n_o_p-index)+ "개인 이름 입력 필요! 캐리지 리턴은 단일 이름 입력을 완료합니다! );

}

}

If(index==n_o_p)

{

For(int I = 0;; 나< 지수; I++)

{

Num.add (I);

}

_txt.setText ("버튼을 클릭하여 제비를 뽑으세요!" " );

}

}

}

@ 덮어쓰기

Public void key released (키 이벤트 e) {

// TODO 자동으로 생성된 메소드 스텁

}

@ 덮어쓰기

공용 void 입력 (KeyEvent e) {

// TODO 자동으로 생성된 메소드 스텁

}

}