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 자동으로 생성된 메소드 스텁
}
}