دعونا نلقي نظرة على الاداءات أولاً:
فقط قم بتحميل الكود.
قم بضبط الزر وأضف القماش لرسم بعض الدوائر ، ثم المراقبة. . .
package cn.hncu.Threaddemo.Thread2 ؛ import java.awt.canvas ؛ import java.awt.color ؛ import java.awt.graphics ؛ import java.awt.event.actionevent ؛ import java.awt.event. java.awt.event.focuslistener ؛ استيراد javax.swing.jframe ؛ استيراد javax.swing.jlabel ؛ استيراد javax.swing.jpanel ؛ استيراد javax.swing.jspinner يمتد JFrame ينفذ changelistener {private ballscanvas ball ؛ خاص Jspinner Spinner ؛ ballsjframe () {super ("pineball") ؛ this.setBounds (300 ، 200 ، 400 ، 300) ؛ this.setDefaultCloseOperation (exit_on_close) ؛ ألوان الألوان [] = {color.red ، color.green ، color.blue ، color.magenta ، color.cyan} ؛ الكرة = الكرة الجديدة (الألوان ، 100) ؛ this.getContentPane (). add (ball) ؛ // الافتراضي هو الموضع المركزي JPanel لوحة = new jpanel () ؛ this.getContentPane (). add (لوحة ، "الجنوب") ؛ Pane.add (New Jlabel ("Delay")) ؛ spinner = new jspinner () ؛ spinner.setValue (100) ؛ Pane.add (Spinner) ؛ spinner.addchangelistener (هذا) ؛ this.setVisible (صحيح) ؛ } Override public void statechanged (changeEvent e) {int value = integer.parseint (""+spinner.getValue ()) ؛ ball.setdelay (القيمة) ؛ } public static void main (string [] args) {new ballsjframe () ؛ }} class ballscanvas يمتد Canvas Canvas PassionListener ، FocusListener {private ball balls [] ؛ // all balls private timer timer ؛ // javax.swing.timer public ballscanvas (color Colors [] ، int delay) {this.balls = new ball [color.lengter] ؛ لـ (int i = 0 ، x = 40 ؛ i <color.length ؛ i ++ ، x+= 20) {this.balls [i] = new ball (x ، x ، colors [i]) ؛ } // دع اللوحة الحالية تراقب حدث التركيز هذا. توقيت = توقيت جديد (تأخير ، هذا) ؛ Timer.Start () ؛ } public void setDelay (int delay) {timer.setDelay (delay) ؛ } override public void paint (Graphics g) {for (int i = 0 ؛ i <this.balls.length ؛ i ++) {g.setColor (balls [i] .Color) ؛ // دع إحداثيات كل كرة --- (إحداثيات x) الكرات [i] .x = الكرات [i] .Left؟ الكرات [i] .x-10: الكرات [i] .x+10 ؛ // عندما تضرب الكرة الجدار ، قم بتغيير اتجاه الكرة إذا (الكرات [i] .x <= 0 || الكرات [i] الكرات [i] .y-10: الكرات [i] .y+10 ؛ // عندما تضرب الكرة الجدار ، قم بتغيير اتجاه الكرة إذا (الكرات [i] .y <= 0 || الكرات [i] }} Override public void actionperformed (ActionEvent e) {//system.out.println("aaa ") ؛ REPAINT () ؛ // تحديث القماش. Call Paint (Graphics G)} Override Public Void FocusGained (Focusevent E) {timer.stop () ؛ } Override public void FocusLost (Focusevent e) {timer.restart () ؛ } كرة فئة ثابتة خاصة {int x ، y ؛ منطقية ، اليسار ؛ لون اللون الكرة العامة (int x ، int y ، لون اللون) {this.x = x ؛ this.y = y ؛ this.color = اللون ؛ Up = Left = false ؛ }}}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.