龙猫12138 2017-05-10 08:46 采纳率: 0%
浏览 3918
已采纳

java 里面,创建一个新线程的时候,为什么要传入一个runnable的参数呢?下面有代码

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Ball extends JPanel implements Runnable
{
/**
*
*/
JFrame frame ;
int x = 30 ;
private static final long serialVersionUID = 1L ;
public Ball ()
{
frame = new JFrame () ;
frame.add(this) ;
frame.setSize(500,500) ;
frame.setVisible(true) ;
}
public void paintComponent(Graphics g)
{
super.paintComponents(g) ;
g.setColor(new Color (238,238,238)) ;
g.fillOval(x-3,30,100,100) ;
g.setColor(Color.RED) ;
g.fillOval(x,30,100,100) ;
}
@Override
public void run()
{
while(true)
{
this.x = this.x + 3 ;
try
{
Thread.sleep(70) ;
repaint () ;
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main (String [] args)
{
Thread th = new Thread (new Ball ()) ;
th.start() ;
}
}
只要添加包名就可以运行了。我想问的是
Thread th = new Thread (new Ball ()) ; 为什么要new一个ball然后传入Thread里面呢?
为什么要这样做呢?为了可以使用run方法吗?

  • 写回答

3条回答

      报告相同问题?

      相关推荐 更多相似问题

      悬赏问题

      • ¥15 pycharm打包项目包含mp3文件,运行exe程序后mp3文件没有执行。
      • ¥15 Quantlib求discount factors
      • ¥15 JS宏提取满足比率的字符区段
      • ¥20 webapi项目的XUnitTest单元测试怎么注入token和自写拦截器(filter)(语言-c#)
      • ¥15 exe和xml必须在一个文件夹才能打开exe文件
      • ¥15 房号如何排序,sql或算法
      • ¥15 macOS使用IDEA 2022.2.4打包JDK6项目报错
      • ¥20 使用matlab进行含参数的最优化求解及数值模拟
      • ¥20 MATLAB找出一维变量中的局部极大值和局部极小值,并进行运算
      • ¥15 有Chang求三维杆单元几何非线性分析matlab代码