2011-01-24 163 views
0

基本上我有一個構造函數依賴於依賴於第一個構造函數的另一個構造函數。這使得編碼非常奇怪。Java構造函數需要一個依賴於依賴於第一個構造函數的另一個構造函數的條件。 (蛇咬尾)

這裏是有問題的代碼就在這裏:

JTextPane textpane = new JTextPane(document); 
StyledDocument document = textpane.getStyledDocument(); 

這將創建使用StyledDocument中的構造函數,然後使用JTextPane的JTextPane中。

請任何幫助,謝謝!

+0

聽起來像你有一些討厭的耦合。 – 2011-01-24 06:10:59

回答

2

你的代碼甚至沒有編譯,你在聲明之前使用document

爲什麼不只是這樣做

StyledDocument document = new DefaultStyledDocument(); // or whatever implementation you wish to use 
JTextPane textPane = new JTextPane(document); 
+0

這絕對是我會做的(在通用意義上)。你必須有一個文件傳遞給JTextPane,所以如果你還沒有創建一個文件,那麼你不能傳入它,然後再把它解出來......這在任何OO語言中都是一樣的。 – Endophage 2011-01-24 06:34:41

2

你似乎混淆,下面的代碼是不是一個構造函數,它是一個​​:

StyledDocument document = textpane.getStyledDocument(); 

返回的對象是通過確切的對象進入JTextPane的構造函數通過:

JTextPane textpane = new JTextPane(document); 
0

如果你真的h大道你可以做

JTextPane textpane = new JTextPane(new StyledDocument()); 
StyledDocument document = textpane.getStyledDocument(); 

但hhafez的答案是更正確的方式來做到這一點。

相關問題