2011-01-24 10 views
0

基本的に私は最初のコンストラクタに依存する別のコンストラクタに依存するコンストラクタを持っています。これは非常に奇妙なコーディングを行います。Javaコンストラクタは、最初のコンストラクタに依存する別のコンストラクタに依存する条件を必要とします。 (蛇がその尾をかむ)

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

これは、その後にJTextPaneを使用StyledDocumentのコンストラクタを使用していますJTextPaneのを作成します。

はここで右ここに問題のあるコードです。

ご協力ありがとうございました!

+0

あなたには厄介なカップリングがあります。 –

答えて

2

コードをコンパイルしていない場合でも、宣言する前にdocumentを使用していますか?

ちょうどあなたが混乱しているように見えるこの

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

これは絶対に私が(一般的な意味で)やっていることです。あなたはJTextPaneに渡す文書を持っていなければなりません。まだ作成していなければ、それを渡すことはできません。もう一度取り出せ...これはどのOO言語でも同じです。 – Endophage

2

は、次のコードは、コンストラクタではないんではない理由、それは​​です:

StyledDocument document = textpane.getStyledDocument(); 

オブジェクトが返さは、渡された正確なオブジェクトでありますのコンストラクタに:

JTextPane textpane = new JTextPane(document); 
0

本当にhあなたにできること

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

しかし、hhafezの答えはそれを行うより正しい方法です。

関連する問題