2016-03-26 17 views
2

MySQLのマネージャとして働くJTextPaneがあるので、その醜い黒と白のコンソールの代わりに使用します。しかし、ユーザーが「Enter」を押して次の行に移動した後、「削除」ボタンを無効にする方法を知りたい。たとえば、私が書く場合:JTextPaneから削除ボタンを無効にする

新しいデータベースユーザーを作成します。

ユーザーがEnterキーを押した後、「新しいデータベースユーザーを作成する」という行を削除しないようにします。

ありがとう!

ので
if (key == KeyEvent.VK_ENTER) {  

      //*********************************** 
      se = jTextPane1.getText().toLowerCase(); 
      String[] linea = se.split("\n"); 
      String sent = linea[linea.length-1]; 

      //******************************** 

      String[] validar = sent.split(" "); 
     if(validar[0].equals("crear") && validar[1].equals("bd")){ 
      try {    
       for (int i = 2; i < validar.length; i+=3){ 
       sentencia.executeUpdate("create database "+validar[i]); 
       jTextPane2.setText("Base de Datos "+validar[i]+" Creada"); 
        }//for 
      }catch (Exception ae) { 
      jTextPane2.setText(ae.getMessage()); 
     }//catch 
     }//if 
     else{ 
      jTextPane2.setText("COMANDO MAL INGRESADO"); 
      }//else 
}//ifEnter 

は、私が欲しいもの########################## EDITは、ユーザーのキーを押した後、 '入力' と、ということです私は最初の2行が必要なものであることを検証し、MySQLでUpdateを実行してからJTextPaneの次の行に移動させますが、削除ボタンを無効にする方法はわかりません彼らがその瞬間に正しい前にすべての行から、彼らはすることはできません。だから、私が使用しなければならないコードは何でしょうか?

+0

JTextFieldを使用して、編集不可能なJTextPaneにエントリを追加することができます。 –

+0

質問に影響する現在のコードを入力してください。 – TheMirrox

+0

@ TheMirrox私にはコードがあります。もしあなたが私に尋ねているものを手に入れたら、私に答えてください。私の英語は十分ではありません。 –

答えて

0

あなただけoffset/lengthが許容範囲内にあるかどうかをチェックし、いずれかの削除を防止またはスーパーを呼び出すために何もしない方法方法で

public void remove(FilterBypass fb, int offset, int length) throws 
        BadLocationException { 
    fb.remove(offset, length); 
} 

public void replace(FilterBypass fb, int offset, int length, String text, 
        AttributeSet attrs) throws BadLocationException { 
    fb.replace(offset, length, text, attrs); 
} 

をDocumentFilterを追加(the exampleを参照)、オーバーライドすることができます。

関連する問題