2011-12-09 118 views
1

因此,我逐漸獲得關於這個東西的經驗,但是這個問題似乎很奇怪,而且幾乎不公平,我不知道該怎麼做。爲了解釋,這裏是我的代碼:構造函數未定義,即使明確導入?

import java.awt.*; 
import java.util.*; 
import javax.media.j3d.*; 
import javax.swing.Timer; //I import the Timer class here, it is accepted 
import javax.vecmath.*; 
import com.sun.j3d.utils.universe.*; 
import com.sun.j3d.utils.behaviors.keyboard.*; 
import com.sun.j3d.utils.behaviors.vp.*; 
import com.sun.j3d.utils.geometry.*; 

public class Scene extends BranchGroup { 
public Scene() { 

Transform3D translate = new Transform3D(); 
translate.setTranslation (new Vector3d (0f, 0f, -10.f)); 
TransformGroup objTranslate = new TransformGroup (translate); 
this.addChild (objTranslate); 

Box box = new Box (0.7f, 0.7f, 0.7f, new Appearance()); 
objTranslate.addChild (box); 

javax.swing.Timer timer = new javax.swing.Timer(5, this); //error message "The constructor Timer(int, Scene) is undefined" 
timer.start(); 
} 
} 

不要過多地關注到代碼的最重要的部分,它仍然是一個草案,將在以後改進。問題在於定時器,它始終返回The constructor Timer(int, Scene) is undefined。我已經添加了儘可能多的導入,儘可能清楚地定義了哪些導入Timer類,等等。timer.start()工作正常,所以我想這個班級無論如何都是被認可的。但是程序不會運行,因爲它沒有定義。即使進口。我不知道爲什麼。

你們中的一個人是否有想法,或者能夠解釋發生了什麼?

謝謝!

+0

「不要過多地關注代碼的最大部分,它仍然是一個草案」 - 將來,請提供簡短但完整的例子,其中*只包含與問題相關的代碼。請閱讀http://tinyurl.com/so-hints –

+0

是的,我想到了一次重新閱讀它,只是縮短了它(現在更容易,我知道問題出在哪裏),對此表示遺憾 –

回答

4

您的Scene班級未執行ActionListener。見herehere

換句話說,Timer類沒有一個構造函數,其構造函數需要intSceneBranchGroup。它只有一個構造函數,它需要一個int和一個ActionListener

+0

Duh,愚蠢的我,怎麼可能我忘了它..非常感謝! –

+0

鏈接已損壞。 – zic10

+0

@ zic10:謝謝。固定。 – Behrang

相關問題