特定の設定で編集できないJTextAreaがあります。ただし、この設定では、ユーザーはスペースキーとバックスペースキーを引き続き使用できます。スペースに対応するために、私は次のコードを持っています。Javaが編集不可能なJTextAreaにバックスペースを挿入する
if (e.getKeyChar() == KeyEvent.VK_SPACE) {
editor.insert(" ", editor.getCaretPosition());
}
私はバックスペースに問題があります。私はこれを試しました
if (e.getKeyChar() == KeyEvent.VK_BACK_SPACE) {
editor.insert("\b", editor.getCaretPosition());
}
これは、バックスペースを押すと小さなスペースを追加するようです。それはスペースではなく、一度押すとほとんど目立ちません。それは間違いなくバックスペースではありません。ひどい場合は、すべての文字をキャレット位置-1までコピーして、キャレット位置の後にすべての文字に追加する必要がありますが、私はその解決策が気に入らないのです。
ジャスト(!s.equals( ""))S = s.substring場合**使用(あなたが言うように)私は、しばらく前に書いたインターフェースを見て、そしてI (0、s.length() - 1); **(私のインターフェイスはカラットを必要としませんでした)また、JTextAreaがあなたのために処理するかどうかわかりませんが、Alt、Tab、Escape 、Controlなど(** KeyEvent.isActionKey()**によって捕らえられていないものも、小さなスペースが挿入される(印刷できない文字)。 – lynks