Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Выделение ключевых слов в JTextPane / 7 сообщений из 7, страница 1 из 1
02.02.2007, 10:34:46
    #34301200
neon_80
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделение ключевых слов в JTextPane
Подскажите как лучше реализовать выделение ключевых слов в JTextPane. Хочу сделать встроенный редактор sql-запросов, для этого необходимо выделять такие слова как select , from . Желательно в ответе привести рабочий пример. Заранее благодарен.
...
Рейтинг: 0 / 0
02.02.2007, 13:34:00
    #34302149
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделение ключевых слов в JTextPane
а зачем очередной велосипед нужен?
...
Рейтинг: 0 / 0
02.02.2007, 13:51:03
    #34302244
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделение ключевых слов в JTextPane
neon_80Желательно в ответе привести рабочий пример.
И ключ от квартиры где деньги лежат
...
Рейтинг: 0 / 0
02.02.2007, 13:53:04
    #34302253
Leonidv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделение ключевых слов в JTextPane
neon_80Подскажите как лучше реализовать выделение ключевых слов в JTextPane. Хочу сделать встроенный редактор sql-запросов, для этого необходимо выделять такие слова как select , from . Желательно в ответе привести рабочий пример. Заранее благодарен.
Эта тема недавно поднималась, только там хотели написать XML-редактор. Я так понимаю, это для себя? Тогда разобраться с Eclipse будет весьма полезно.
http://rsdn.ru/Forum/Message.aspx?mid=2327877&only=1
...
Рейтинг: 0 / 0
02.02.2007, 17:53:42
    #34303333
neon_80
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделение ключевых слов в JTextPane
Я разрабатываю программу где необходимо писать sql-запросы, результат выполнения которого должен сам обработать. Пишу на JDeveloper-e. поэтому мне для удобства нужен свой встроенный в программу редактор запросов. Иначе бы не спрашивал.
Если никто не знает как сделать, то может поможет разобраться с StyledDocument? Не могу на русском по этому делу докук найти.
...
Рейтинг: 0 / 0
02.02.2007, 18:17:29
    #34303408
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделение ключевых слов в JTextPane
читайте портянкина "Эффективные пользовательские интерфейсы". там про это целая глава есть. тынц
...
Рейтинг: 0 / 0
07.02.2007, 16:48:51
    #34313374
neon_80
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделение ключевых слов в JTextPane
Что то похожее я все таки накатал. Но вот проблема не могу узнать границы текущего слова. изза этого все проблемы. Если вводить одно и то же слово несколько раз то глюки появляются. Может кто подскажет как надо?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
 class  HighlightTest {

 HighlightTest() {
   JTextPane textPane =  new  JTextPane();

   attrs[ 0 ] =  new  SimpleAttributeSet();
   StyleConstants.setBold(attrs[ 0 ], false);

   attrs[ 1 ] =  new  SimpleAttributeSet();
   StyleConstants.setBold(attrs[ 1 ], true);

   doc =  new  SQLHighlighting();
   textPane.setDocument(doc);
 }


     class  SQLHighlighting  extends  DefaultStyledDocument {
       protected   void  insertUpdate(DefaultDocumentEvent chng, AttributeSet attr) {
          int  offset = chng.getOffset();
         String word="";
         String next_word="";

         
        try  {
         StringTokenizer st =  new  StringTokenizer(doc.getText(posS, posE));
          while  (st.hasMoreTokens() == true) {
           next_word=st.nextToken();
            while  (st.hasMoreTokens()) {
            word = next_word;
            next_word = st.nextToken();
            posS=textPane.getText().indexOf(word);
            posE=textPane.getText().indexOf(next_word);
             if  (word.equalsIgnoreCase("select")) {
              doc.setCharacterAttributes(posS, posE, attrs[ 1 ], true);
            }  else  {doc.setCharacterAttributes(posS, posE, attrs[ 0 ], true);}
           }
         }
       }  catch  (BadLocationException ex) { System.out.println(ex.getMessage()); }
      }
    }
}
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Выделение ключевых слов в JTextPane / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]