编译错误,找不到符号和构造函数不能应用于给定的类型

Suh*_*pta 1 java compiler-errors

我收到2个错误:

ControllingSpeed.java:89: constructor Thread in class Thread cannot be applied to given types
   Thread th=new Thread(r);
              ^
required: no arguments
found: Runnable
ControllingSpeed.java:90: cannot find symbol
   th.start(r);
     ^
symbol:   method start(Runnable)
location: class Thread
2 errors
Run Code Online (Sandbox Code Playgroud)

我不知道错误的原因.

// Demo On JSlider

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.lang.Thread.*;

class ControllingSpeed extends JPanel{

...<snip>...

public void threadForSpeed(final ChangeEvent ce) {   // <----- cause of error ?
    try { 
        Runnable r = new Runnable() {
            public void run() {
                changeSpeed(ce);
            }
        };
        Thread th=new Thread(r);
        th.start(r);                // <---- till here
    } catch(Exception exc) {
        System.out.println(exc);
    }  
}
Run Code Online (Sandbox Code Playgroud)

dac*_*cwe 5

问题很可能是你的软件包中的某个地方你创建了一个名为Threadeclipsing java.lang.Thread类的类.那个类(你自己的)可能看起来像这样:

class Thread {}
Run Code Online (Sandbox Code Playgroud)

尝试使用完整限定名称指定Thread类,如下所示:

    java.lang.Thread th = new java.lang.Thread(r);
Run Code Online (Sandbox Code Playgroud)

此外,该Thread#start()方法不带参数,因此Runnable从参数中删除"r":

    th.start();
Run Code Online (Sandbox Code Playgroud)