Yaohao 무작위 애플릿 자바 스레드를 사용하고 JFrame의 패널을

그 중 많은 자신에 의해 작성된 천천히 많은 번호를 변경하는 시도

하지만 최종 결과는 잘못 아니다

마지막으로, 마지막은 마지막으로 당신이 원하는 결과를 얻을 수

천천히 훈련을받을 항상 훈련

어서! ! ! !

코드에서 :

수입 java.awt.Color의;
수입 java.awt.event.ActionEvent의;
수입 java.awt.event.ActionListener;


수입 javax.swing.Icon;
수입 javax.swing.JButton;
수입 javax.swing.JDialog;
수입 javax.swing.JLabel;
수입 (듯이) javax.swing.JScrollPane;
수입 javax.swing.JTextArea;
수입 javax.swing.JTextField;


공용 클래스 mDialog를가되는 JDialog를 확장 {
개인의 JTextField의 TF1, TF2, TF3, TF4;
MThread의 MT1, MT2, MT3, MT4;
JButton의 BT1, BT2, BT3;
JTextArea에의 새로운 JTextArea에 JA를 () =;
JLabel의 JL [] = {널, 널, 널, 널};
JLabel의 JB = 새로운 JLabel의 ();
JScrollPane의 scoll = 새로운 JScrollPane의 ();
쓰레드 그룹 TG = 새로운 쓰레드 그룹을 ( "摇号");
// 정적 부울 isstop = 참;
공공 mDialog를 () {
this.setTitle ( "随机摇号小程序");
this.setBackground (Color.BLUE);
this.setBounds (100, 100, 450, 300);
. getContentPane () setLayout의 (NULL);
BT1 = createButton (이 "开始", 0);
TF1 =하여 createTextField (이, 0);
TF2 =하여 createTextField (이, 1);
TF3 =하여 createTextField (이, 2);
TF4 =하여 createTextField (이, 3);
MT1 = 새로운 MThread (TF1, TG);
MT2 = 새로운 MThread (TF2, TG);
MT3 = 새로운 MThread (TF3, TG);
MT4 = 새로운 MThread (TF4, TG);
bt1.addActionListener (새의 ActionListener () {
공공 무효의 actionPerformed (ActionEvent를 전자) {
// 문자열 1 = tf1.getText ();
// 문자열 2 = tf2.getText ();
// 문자열 tf3.getText N3 = ();
// 문자열 4 = tf4.getText ();
// isstop = TRUE;
// MThread T1 = 새로운 MThread (TF1, TG);
// MThread T2 = 새로운 MThread (TF2, TG);
// MThread T3 = 새로운 MThread (TF3, TG);
// MThread T4 = 새로운 MThread (TF4, TG);
// MThread T1 = 새로운 MThread (TF1, TG);
mt1.start ();
mt2.start ();
mt3.start ();
mt4.start ();
bt1.setEnabled (FALSE);
}
});
JLabel의 파운드 = 새로운 JLabel의 ( "数字显示");
lb.setBounds (37, 27, 54, 15);
. this.getContentPane () (파운드)를 추가; // JL [0] = createJLabel (이, 0); // JL [1] = createJLabel (이, 1); //



JL [2] = createJLabel (이, 2);
// JL [3] = createJLabel (이, 3);
// jl1.setBounds (60, 90, 35, 21);
// jl2.setBounds (98, 90,35, 21);
// jl3.setBounds (136, 90,35, 21);
// jl4.setBounds (174, 90,35, 21);
// this.add (JL [0]);
// this.add (JL [1]);
// this.add (JL [2]);
// this.add (JL [3]);
ja.setBounds (37, 90, 200, 150);
(JA) this.add;
(scoll) this.add;
BT2 = createButton (이 "抽取一次", 1);
bt2.addActionListener (새의 ActionListener () {
공공 무효의 actionPerformed (ActionEvent를 전자) {
// isstop = 거짓;
// mt1.interrupt ();
// mt2.interrupt ();
// mt3.interrupt ();
// mt4.interrupt ();
//System.out.println(mt1.s);
// 문자열 S1은;
// S1 = (mt1.m + "");
// 문자열 S2는;
// S2 = (mt2.m + "");
// 문자열 S3는;
// S3 = (mt3.m + "");
// 문자열 S4는;
//// S4 = (mt4.m + "");
// JL [0] .setText (mt1.jf.getText ());
// JL [1] .setText (mt2.jf.getText ());
// JL [2] .setText (mt3.jf.getText ());
// JL [3] .setText (mt4.jf.getText ());
tg.interrupt ();
동기 (MT1) {
동기 (MT2) {
동기 (MT3) {
동기 (MT4) {
// 에서 System.out.println ();
// ja.setLineWrap (TRUE);
ja.append ( "\ n"+ mt1.jf.getText () + ""+ mt2.jf.getText () + ""+ mt3.jf.getText () + ""+ mt4.jf.getText ()) ;
// scoll.add (JA);
// ja.setText (mt2.jf.getText ());
}
}
}
}
bt2.setEnabled (FALSE);
} }); BT3 = createButton (이 "继续", 2); bt3.addActionListener (새의 ActionListener () { 공공 무효의 actionPerformed (ActionEvent를 전자) { tg.resume (); bt1.setEnabled (거짓) bt2.setEnabled (TRUE); } });













m = N;
m을 리턴;
}
Public 클래스 MThread는 스레드 {연장
I = 0 나타내는 int
JTextField를 JF = 새로운 JTextField를 ();
// INT의 m;
공공 MThread (JTextField를 JF, 쓰레드 그룹 TG) {
슈퍼 (TG, "摇号");
this.jf = JF;
}
공공 무효 실행 () {
동안 (사실) {
// INT t = 0;
동기 (이) {
내가 = (I + 1) 10 %;
jf.setText ( ""+ I);
//
}
경우 (this.interrupted ()) {
this.suspend ();
}
// t ++;
}
}
}
공공 정적 무효 메인 (문자열 []에 args) {
시도 {
mDialog를 대화 = 새로운 mDialog를을 ();
dialog.setDefaultCloseOperation (JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible (TRUE);
} 캐치 (예외 전자) {
e.printStackTrace ();
}
}
공개 JTextField를 고정하여 createTextField (mDialog를 ㎎, I를 INT) {
JTextField를 JF = 새의 JTextField를 ();
(내가 38,52,35,21을 * + 37) jf.setBounds;
. mg.getContentPane () (JF)를 추가;
JF 반환;
}
공공 정적 JLabel의 createJLabel (mDialog를 ㎎, I를 INT) {
JLabel의 JL = JLabel의 새로운을 ();
jl.setBounds (37 난 * + 38, 90, 35, 21);
. mg.getContentPane () (JL)를 추가;
JL를 반환;
}
공공 정적하는 JButton createButton는 {(mDialog를 ㎎, 문자열 문자열, 난을 INT)
// 아이콘 이름을;
하는 JButton JB = 새로운 JButton의 (문자열);
jb.setBounds (300 + 52 * i가 35, 95, 25);
. mg.getContentPane () (JB)를 추가;
JB 반환;
}

}



게시 19 개 원래 기사 · 원 찬양 58 ·은 50000 +를 볼

추천

출처blog.csdn.net/cyg_l02/article/details/80287909