2016-07-24 12 views
0

私は構文強調表示を持つテキストエディタを作っています。現在、編集可能なテキストは、HBoxのリストとして行として実装されています。このリストには、それぞれが単一の単語を保持するTextインスタンスのリストが格納されています。こうして私はすべての言葉のスタイルを変えることができます。構文着色のためのテキストの効果的な処理

テキストファイルが大きい場合、私のパーサーはたくさんのメモリを消費するTextインスタンスの負荷を(MATによってチェックされ)、プログラムの応答性を低下させるので、間違ったアプローチです。シンタックスカラーリングでテキストを実装する方が良いでしょうか?

編集:テキストノードのレンダリングは、LinuxシステムよりもWindows上で高速です。だからグラフィックスドライバの問題も。

答えて

0

Textオブジェクトの量を減らすために類似した色のオブジェクトをマージしようとしましたか?Text など。 startメソッド

public void start(Stage primaryStage) { 
} 

のためにあなたは、1つのテキストオブジェクトと別のstart(StageprimaryStage){public voidをマージすることができます。あなたは、各@FXMLは、複数行を表示するには、エスケープシーケンス\nを経由して区切られている@FXMLLabel、のために使用することができ、このような

@FXML Label lbl_name, lbl_amount, lbl_categories, lbl_date, lbl_value; 
@FXML TextField tf_name; 
@FXML ListView<String> lv_categories, lv_brand; 
@FXML Spinner sp_amount, sp_value; 
@FXML DatePicker dp_date; 

として属性宣言については

。オブジェクト型宣言にも同じことが当てはまります。オブジェクト型宣言も同様に色付けする必要があります。 など。 lbl_name, lbl_amount, lbl_categories, lbl_date, lbl_value;を一緒にマージすることができました。

もう1つの方法は、実際にユーザーに表示される線のみをインスタンス化することです。

HTMLに表示するコードを解析する場合は、HTMLEditorとHTMLタグを組み合わせて構文を強調表示することもできます。

関連する問題