2016-03-26 3 views
2

У меня есть JTextPane, которая работает в качестве менеджера для MySQL, поэтому я использую ее вместо этой уродливой черно-белой консоли. Но я хочу знать, как отключить кнопку «удалить» после нажатия пользователем «Enter» и перехода к следующей строке. Например, если я пишу:Отключить кнопку удаления из JTextPane

создать нового пользователя базы данных;

После того, как пользователь нажимает Enter, я не хочу, чтобы они удаляли эту строку «Создать пользователя новой базы данных».

Спасибо, ребята!

########################## EDIT
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 

Так что я хочу, что, после того, как пользователь нажимает кнопку 'Enter', и Я подтверждаю, что первые две строки - это то, что мне нужно, я выполняю обновление в MySQL, а затем переместил его в следующую строку JTextPane, однако я не знаю, как отключить кнопку удаления, чтобы, если они хотят удалить все от строк до того, как они правы в тот момент, они не могут. Итак, какой код я должен использовать?

+0

Вы можете использовать JTextField, а затем добавить эту запись в нередактируемую JTextPane. –

+0

Просьба представить ваш текущий код, затрагивающий вопрос. – TheMirrox

+0

@ TheMirrox Есть кусок кода, который у меня есть. Ответьте мне, если вы получите то, что я прошу, извините, если мой английский недостаточно хорош ... –

ответ

0

Вы можете добавить DocumentFilter (см the example) и переопределить методы

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); 
} 

В способах просто проверить, является ли offset/length в допустимых пределах и либо не делать ничего, чтобы предотвратить удаление или назвать супер.

Смежные вопросы