вопрос про Java SWT
http://commons.apache.org/lang/api-release/index.html должно хватить
чего-то подобного чего-то подобного http://commons.apache.org/lang/api-release/index.html должно хватитьнда, весьма общё...
import java.util.regexp.*;
(...)
Pattern p = Pattern.compile("\p{Graph}+");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches;
Только причем тут SWT?подумал, может есть какие-нибудь механизмы перенаправить вводимые символы в SWT...
в итоге пришлось написать все же такую функцию:
public static boolean isCharPrintable(char ch) {
if (ch >= 32 && ch < 127)
return true;
return ch>='А' && ch<='Я' || ch == 'Ё' || ch>='а' && ch<='я'|| ch=='ё';
}
public static boolean isCharPrintable(char ch)В инструкциях на немецком, французском и некоторых других языках напишите "для поддержки ввода с клавиатуры обратитесь к разработчику".
В инструкциях на немецком, французском и некоторых других языках напишите "для поддержки ввода с клавиатуры обратитесь к разработчику"вообще вряд ли, кто-то кроме русскоязычных юзеров будут пользоваться данным софтом...
получается всё же правильнее заюзать регэкспы?
получается всё же правильнее заюзать регэкспы?правильнее, взять стандартную java-функцию, которая определяет принтабельность символа.
правильнее, взять стандартную java-функцию, которая определяет принтабельность символа.Угу, она есть в Character, но беда в том, что судя по первому посту, автору нужно так же обрабатывать всякие backspace, enter, tab, ctrl-z, и так далее.
автору нужно так же обрабатывать всякие backspace, enter, tab, ctrl-z, и так далее.от этого все равно никуда не деться, но со стандартной функцией по крайней мере со стандартными символами проблем не будет
получается всё же правильнее заюзать регэкспы?Для символов можно воспользоваться Character.isLetterOrDigit но я бы вместо этого использовал коды клавиш, типа KeyEvent.VK_A ... KeyEvent.VK_Z и т.п. То есть передавал бы в редактор более низкоуровневые события. Если бы ты работал со swing, я бы подсказал как это всё сделать.
Character.isLetterOrDigitвообще хочется чтобы всякие знаки типа: '=', '/', '@' и т.д. тоже поддерживались... какая есть функция в Character, которая возвращает true для принтабельных символов?
правильнее, взять стандартную java-функцию, которая определяет принтабельность символа.собственно я и хотел с самого начала узнать эту стандартную функцию?
SWT.BS
The Backspace character ('\b')
SWT.CR
The Return character ('\r')
SWT.DEL
The Delete character ('\u007F')
SWT.ESC
The Escape character ('\u001B')
SWT.LF
The Linefeed character ('\n')
SWT.TAB
или просто выкидывать все, на что Character.isISOControl вернет true?
Оставить комментарий
chirrsen
Хочется при фокусе на одном контроле чтобы все символы, которые вводятся с клавиатуры показывались в ТекстБоксе.Можно подписаться КейЛиснером к первому контролу, и добавлять введенные символы в ТекстБокс.
Отсюда вопрос:Как определить, что данный char является таким символом, который можно ввести с клавиатуры в какой-нибудь ТекстБокс? Т.е. чтобы отфильтровать всякие делиты, эскейпы, ентеры и т.д.... ну не писать же самому такую функцию, перечисляя все возможные символы...
Или может существует еще какое-нибудь решение?
З.Ы. Контролы SWT-шные