トップページ > プログラム > 2015年01月25日 > zlRFYum9

書き込み順位&時間帯一覧

72 位/197 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000010001



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
★★Java質問・相談スレッド172★★ [転載禁止]©2ch.net

書き込みレス一覧

★★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に出力させるけどこっちではやっていない
などの違いはありますが、インデントの増減に関する部分は変数名以外違いはありません。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。