- ★★Java質問・相談スレッド172★★ [転載禁止]©2ch.net
187 :デフォルトの名無しさん[sage]:2015/01/25(日) 20:48:31.46 ID:zlRFYum9 - Eclipseなどのように"{+Enter"や"}"の入力で自動的にインデントを増減させたいと思っています。
自分なりにコード作ってはいるものの、"}"の入力時にインデントが減ってくれません。 以下がkeyReleasedに書いている部分です。 //JTextPane pane=new JTextPane(); //Document doc=pane.getDocument(); if (event.getKeyChar() == '}') { System.out.println("end:"+ pane.getText().substring(0, pane.getSelectionStart())); if (pane.getText().substring(0, pane.getSelectionStart()).endsWith("\t}")) { try { doc.remove(pane.getSelectionStart() - 2, 1); } catch (BadLocationException e) { e.printStackTrace(); } } } 初めの条件文には引っかかるんですけど、その次の条件文には引っかかってくれません。 条件の一部を出力させて調べてみると、 JTextPaneにはその時点ではまだ"}"は入力されていないみたいでした。 この書き方はよくないのでしょうか? このコードは別のエディタを作るときに使っていたものを抜き出したもので、 そのエディタではインデントを増減はうまくいっています。 エディタのほうは行番号を別JTextPaneに出力させるけどこっちではやっていない などの違いはありますが、インデントの増減に関する部分は変数名以外違いはありません。
|
|