علت restart شدن رابط گرافیکی در این کد
سوال
سلام
چرا وفتی کد زیر اجرا میشود وقتی لیبل بالایی، یک واحد به آن اضافه میشود، لیبل «mort» دوباره به جای اول خودش بر می گردد؟
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
import java.util.*; import javax.swing.JLabel; public class form extends javax.swing.JFrame { public form() { initComponents(); } private void initComponents() { jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jLabel1.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N jLabel1.setText("0"); jLabel2.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N jLabel2.setText("MORT"); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel1) .addComponent(jLabel2)) .addContainerGap(640, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jLabel1) .addGap(169, 169, 169) .addComponent(jLabel2) .addContainerGap(232, Short.MAX_VALUE)) ); pack(); } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { form f=new form(); f.setVisible(true); Timer t=new Timer(); t.schedule(new mytt(f.jLabel1), 1000,1000); Timer t2=new Timer(); t2.schedule(new mytt2(f.jLabel2), 10,10); } }); } private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; } //---------------------------------------------- class mytt extends TimerTask { JLabel jl; mytt (JLabel jl) { this.jl=jl; } @Override public void run() { jl.setText(""+(Integer.parseInt(jl.getText())+1)); } } //---------------------------------------------- class mytt2 extends TimerTask { JLabel jl; mytt2 (JLabel jl) { this.jl=jl; } @Override public void run() { jl.setLocation(jl.getX()+1, jl.getY()); } } |
0
انجمن برنامه نویسان جاوا
3 سال
0 پاسخ ها
232 دیده شده
0
ارسال یک پاسخ
شما برای افزودن نظر جدید یا باید وارد شوید یا اینکه ثبت نام کنید. ورود ثبت نام