2011-06-17 32 views
0

我得到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 

我不知道該錯誤的原因。

// 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); 
    } 
} 
+0

我已經編輯我的post.Earlier我在的參數傳遞''r' start' –

+1

在您的文章發佈後,您仍然有與第一次提到的完全相同的編譯錯誤?我不敢相信! – jfpoilpret

+0

應用嚴格編輯將該問題的範圍縮小到特定的編譯錯誤。 –

回答

4

的問題是很有可能在某處你的包,你必須創建一個名爲Thread被遮蓋了java.lang.Thread類類。這個類(你自己)可能看起來是這樣的:

class Thread {} 

嘗試使用完整的合格的名稱像這樣指定的主題類:

java.lang.Thread th = new java.lang.Thread(r); 

此外,Thread#start()方法不帶任何參數,所以從參數中刪除Runnable「R」:

th.start(); 
1

那麼一個錯誤是Thread類的啓動方法不帶參數。它只是:

th.start(); 
+0

這是一個錯誤..但我得到相同的2錯誤,沒有'r'的錯誤消息。我編輯了我的文章 –