Вы можете сначала создать поле id
в базе данных с опцией автоматического увеличения, затем отформатировать его в java
Integer id = 12345678; //id get from database
StringBuilder str = new StringBuilder(id.toString());
str.insert(str.length() - 4, '-');
System.out.println(str);
Если только в приложении java вы можете использовать AtomicInteger и преобразовать его в строку, то отформатируйте как приведенный выше код (см. подробнее на https://examples.javacodegeeks.com/core-java/util/concurrent/atomic/atomicinteger/java-atomicinteger-example/ , но этот метод не рекомендуется, потому что если система отключена, значение AtomicInteger будет сброшено к начальному значению)
Кожа является просто еще одним Уровнем Абстракции (YALOA!).
Если Вы будете читать на шаблоне разработки MVC затем, то Вы поймете многие необходимые принципы.
Уровень представления (или кожа) только должен сделать несколько вещей:
В нормальной программе эта абстракция сделана при наличии кода, который подключает текстовые поля к методам и объектам, они связаны с, и имеющий код, который изменяет дисплей на основе команд программы.
Если Вы хотите добавить очищение, необходимо взять ту способность и сделать ее так, чтобы мог быть сделан, не компилируя код снова.
Выезд, например, XUL и видят, как он сделан там. Вы найдете, что большое очищение проектов использует XML для описания различных 'поверхностей' кожи (это играющий музыку или организующий библиотеку для кожи MP3-плеера), и затем где каждое управление расположено и к каким данным и методам это должно быть присоединено в программе.
Это может казаться твердым, пока Вы не делаете это, затем Вы понимаете, что это точно так же, как любой другой уровень абстракции Вы имели дело с прежде (из программы с gotos, к управляющим структурам, к функциям, к структурам, к классам и объектам, к JIT-компиляторам, и т.д.).
Начальная кривая обучения не тривиальна, но сделайте несколько проектов, и Вы найдете, что это не твердо.
- Adam
Сохраните все свои стили в отдельном файле (файлах) CSS
Держитесь подальше от любого встроенного моделирования
Это действительно зависит от того, как "со сменными окнами" Вы хотите, чтобы Ваши приложения были. Разрешение пользователю настроить цвета и изображения будет намного легче, чем разрешение им скрыться/удалить компоненты или даже записать их собственные компоненты.
Для большинства случаев можно, вероятно, сойти с рук запись некоторого Провайдера ресурсов, который подает цвета и изображения вместо жесткого кодирования их в исходном файле. Так, это:
Color backgroundColor = Color.BLUE;
Стал бы чем-то как:
Color backgroundColor = ResourceManager.getColor("form.background");
Затем все, что необходимо сделать, изменить отображения в классе ResourceManager, и все клиенты будут последовательны. Если Вы захотите сделать, то это в режиме реального времени, изменяя любое из отображений ResourceManager, вероятно, отошлет событие его клиентам и уведомит их, что что-то изменилось. Затем клиенты могут перерисовать свои компоненты, если они хотят.
Основной принцип то, что используется CSS в веб-страницах.
Вместо того, чтобы когда-либо указывать форматирование (окрашивают / шрифт / расположение [в некоторой степени]) Вашего содержания, Вы просто описываете, какое содержание это.
Для предоставления веб-примера в содержании для страницы блога, Вы могли бы отметить различные разделы, как являющиеся:
и т.д.
Запись могла бы быть сделана из, разъединяют подразделы, такие как "заголовок", "тело" и "метка времени".
Затем в другом месте у Вас есть таблица стилей, которая указывает все свойства каждого вида элемента, размера, выравнивания, цвета, фона, шрифт и т.д. При рендеринге страницы или srawing / инициализация componatns в UI Вы всегда консультируетесь с текущей таблицей стилей для поиска этих свойств.
Затем очищение и действительно редактирование Вашего дизайна, становятся НАМНОГО легче. Вы простой создаете другую таблицу стилей и настраиваете значения к содержанию Вашего тепла.
Править:
Один ключевой пункт для запоминания является различием между общим стилем (как классы в CSS) и определенным стилем (как идентификатор в CSS). Вы хотите смочь однозначно определить некоторые объекты в своем расположении, такие как заголовок, как являющийся единственным идентифицируемым объектом, к которому можно применить уникальный стиль, тогда как другие объекты (такие как запись в блоге или поле в представлении базы данных) все захотят иметь тот же стиль.
Реализация варьируется платформой, но здесь является несколькими общими межплатформенными соображениями:
Это всего несколько вещей знать. Ваша реализация будет варьироваться между веб-клиентом и толстым клиентом, и Вашими требованиями к функциям. HTH.
Это отличается для каждой платформы/технологии.
Для WPF смотрите на то, что Josh Smith называет структурным очищением: http://www.codeproject.com/KB/WPF/podder2.aspx
Вы не были должны. Или по крайней мере необходимо спросить себя, если это - действительно правильное решение.
Очищение повреждает руководство по проектированию UI. Это "сотрясает" пользователя, потому что Ваше покрытое кожей приложение работает и выглядит полностью отличающимся от всех других приложений их использование. Вещи как ключи быстрой клавиши не будут последовательны, и они потеряют производительность. Это будет менее затруднено доступное, потому что программам для чтения с экрана придется тяжелее, понимая это.
Существует тонна причин НЕ к коже. Если Вы просто хотите подать свою заявку, визуально отличную, это - плохая причина, по-моему. Вы сделаете свое приложение тяжелее для использования и менее вероятно что люди будут когда-либо идти вне пробного периода.
Сказав все это, существуют некоторые классы приложений, где очищение в основном ожидается, такие как медиаплееры и иммерсивные полноэкранные игры. Но если Ваше приложение не находится в классе, где очищение в основном получает мандат, я серьезно рассмотрел бы нахождение других способов сделать Ваше приложение лучше, чем Ваша конкуренция.
В зависимости от того, как глубоко Вы хотите вырыть, можно решить использовать платформу 'форматирования' (например, PLAF Java, CSS сети), или полностью отделенная многоуровневая архитектура.
Если Вы хотите определить сменную кожу, необходимо рассмотреть это с самого начала. Уровень представления ничего не знает о бизнес-логике, но это - API и наоборот.
Это должно быть относительно легко, выполнить эти шаги:
Для получения дополнительной информации посетите сад дзэн CSS для идей.
Кажется, что большинство людей здесь обращается к CSS, как будто это - единственная очищающая опция. Windows Media Player (и Winamp, AFAIR) используют XML, а также изображения (если neccesary) для определения кожи.
Ссылочные рычаги XML, события, и т.д. и дескрипторы, как вещи смотрят и реагируют. Я не уверен в том, как они обрабатывают бэкэнд, но загрузка данной кожи действительно так же просто как определяет местоположение соответствующего XML-файла, загружая изображения, затем размещающие их, куда они должны пойти.
XML также дает Вам намного больше контроля тем, что можно сделать (т.е. создать новые компоненты, изменить размеры компонента, и т.д.).
XML, объединенный с CSS, мог дать замечательные результаты для очищающего механизма рабочего стола или веб-приложения.