Ваш шаблон немного не в порядке. Попробуйте эту версию:
String valid = ("[0-9]{4}[A-Z][0-9]{4}-[0-9]{2}");
if (!legalDescription.matches(valid))
{
// throw new MyInvalidLegalDescriptionException("Invalid format! Should be " + "e.g 4050F8335-14");
}
Объяснение регулярного выражения:
[0-9]{4} any 4 digits
[A-Z] any capital letter
[0-9]{4} any 4 digits
- a dash
[0-9]{4} any 2 digits
Следует отметить, что [0-9999]
не не не соответствует ни одному числу между 0 и 9999. Скорее, он просто соответствует одной цифре от 0 до 9.
Мне нравится создавать UI (HTML, SWT или Swing) с Groovy. Это именно так намного более просто с разработчиками Groovy.
JavaDesktop является очень полным источником информации для этого вида вопроса.
В последнее время я нашел (но не использовал его непосредственно сам), впечатляющий комплект компонента колебания Фламинго.
Особенно, потому что это позволяет интегрировать один последний недавний дизайн UI: ленты
(Это не новый способ разработать в смысле, это - все еще классический компонент Swing, не - например - основанная на XML спецификация колебания, но я посмотрел бы на другие проекты javadestop для других иллюстраций к Вашему вопросу),
Другой "лучший путь" с помощью лучшего менеджера по Расположению:
MigLayout:
чрезвычайно гибкий и простой в использовании менеджер по Расположению, который работает и на Swing и на SWT.
Это может сделать, какая Сервировка, Макет формы и почти все менеджеры по Расположению Swing могут с простым для понимания Строки и/или основанного на API кодирования.
Это предназначено, чтобы быть для вручную кодированных разметок, что Расположение Matisse/Group для IDE.
JPanel panel = new JPanel(new MigLayout());
panel.add(firstNameLabel);
panel.add(firstNameTextField);
panel.add(lastNameLabel, "gap unrelated");
panel.add(lastNameTextField, "wrap");
panel.add(addressLabel);
panel.add(addressTextField, "span, grow");
(источник: miglayout.com)
Среда разработки приложения Swing является легкой платформой, которая упрощает создание и поддержание малых и средних настольных приложений Java. Платформа состоит из Библиотеки классов Java, которая поддерживает конструкции для вещей, таких как следующее:
Вот статья об этом.
Это было интегрировано с Netbeans 6.0 и позже.
Если вам нравится программировать на Groovy вместо Java, загляните в Griffon: http://griffon.codehaus.org/