Quantcast
Channel: 質問!ITmedia 新着質問(Java/253)
Viewing all articles
Browse latest Browse all 2439

JavaのRunnableスレッドの起動停止方法

$
0
0
JavaのRunnableスレッドの起動停止方法について質問します。 このコードを変更しまして、マウスのクリックでスレッドの 再開と停止の方法をお教えください。 ==================== import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import javax.swing.JFrame; import javax.swing.SwingUtilities; /* import java.awt.*; import javax.swing.*; */ public class T_paint extends JFrame implements Runnable { T_paint mypaint; int cnt; int color=0; Graphics2D g; Graphics2D g2=(Graphics2D)g; public static void main(String args[]) { JFrame frame = new T_paint(); frame.setBounds(10 , 10 , 400 , 300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show(); //Runnableの場合は、不要か } public T_paint() { new Thread(this).start(); } //public は無くても良い public void run() { cnt=0; while(cnt++<50) { color += 0x050500; if (color == 0xFFFFFF) color = 0; SwingUtilities.invokeLater(new Runnable() { public void run() { // if(cnt<5){ //この命令を実行するために、paint(Graphics g) が呼出される。 setForeground(new Color(color)); //この命令の実行により、public void paint(Graphics g) が呼出される。 // } // myCanvas.draw(g2); } } ); try{ Thread.sleep(100); } catch(Exception e){ } System.out.println("loop"+" color="+color); // if(cnt++>10) cnt=0; } // setForeground(new Color(0xFFFFFF)); //この命令の実行により、public void paint(Graphics g) が呼出される。 } /* //このルーチンは、実行されない。 public void update(Graphics g){ paint(g); System.out.println("update(Graphics g)"); } */ public void paint(Graphics g) { Graphics2D g2=(Graphics2D)g; myCanvas.draw(g2); // g.fillRect(0 , 0 , getWidth() , getHeight()); System.out.println("paint(Graphics g)"); } } ============================ 以上、宜しくお願いします。

Viewing all articles
Browse latest Browse all 2439

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>