2017-09-07 5 views
0

JavaFXチュートリアルでは、私はTextを実行しました。それは、Stringが使用されると思っていた場所で使用されています。バーは編集することができない、または私は私の研究で見つけることができていない他の違いがあることテキストと文字列の違いは何ですか?

String foo = new String("bat"); 

Text bar = new Text("bat"); 

の唯一の違いはありますか?

+2

初心者としては、これらは全く異なる2つのクラスです。 – Marvin

+0

違いは何ですか?基本的にすべて。 – luk2302

答えて

3

JavaFXのコンテキストでは、Textは、javafx.scene.textパッケージのクラスです。 Textクラスは、テキストを表示するノードを定義します。段落は '\ n'で区切られ、テキストは段落の境界に折り返されます。つまり、Textはシーングラフのコンポーネントです。

Stringまた、クラスもJava言語の基本データ型です。文字列は、Javaコンパイラによって暗黙的にインポートされるjava.langパッケージに含まれています。 Stringクラスは文字列を表します。 "abc"のような、Javaのすべての文字列リテラルは、このクラスのインスタンスとして実装されます。

類似

  • 両方のテキストと文字列の場合は文字列として「テキスト」を含めることができます。

違い

  • 文字列値は、あなたがそれを割り当てた値を変更することはできませんが、テキストのインスタンスは変更可能であり、のsetText()メソッドを呼び出すことによって変更することができるという点で、不変です。

TextまたはString引数をとるメソッドは、適切なクラスに変換せずに互換的に使用することはできません。

Text text = new Text("foo"); 
// convert Text to String 
String s = text.getText(); // value = "foo" 
// convert String to Text 
text.setText(s); // or text = new Text(s) // value = "foo" 
+1

注: 'String'はプリミティブではありません。それには普通のクラス以上の特別なサポートがあります。 – user2478398

+0

Stringを頻繁に使用します - プリミティブではなく当然のことです。 [チュートリアル](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html)を参照してください。 – JasonM1

3

文字列は、文字シーケンスの単なるコンテナです。 Textクラスは、文字列/テキストを表示(および色、サイズなどの書式設定)するためのJavaFXクラスです。基本的にUIコンポーネントです。

関連する問題