Ответ 1
Эта статья, Как написать пользовательский компонент Swing, должна быть действительно полезна. Он охватывает репликацию ползунка Windows, который имеет как дискретные шаги, так и непрерывный диапазон.
Я всегда хотел создавать пользовательские компоненты на Java или настраивать существующие, но мои поиски никогда не приводили к чему-либо полезному. Поэтому я решил спросить сообщество StackOverflow:
Где я могу найти информацию о настройке компонентов Java GUI в целом?
И когда я имею в виду настройку, я не говорю об изменении цветов, шрифтов и т.д. Я имею в виду действительно их настройку. Вот два примера компонентов макета:
Примечания
Я начал этот вопрос главным образом, чтобы найти, как создать вышеупомянутые два пользовательских компонента. Но потом я понял, что нет общего вопроса о взломе компонентов качания. Поэтому я подумал, что лучше иметь список ресурсов.
В случае, если вам интересно, как работают два компонента в макете, вот он:
Индивидуальная JScrollPane, которая имеет две полосы прокрутки для каждой ориентации. Каждая полоса прокрутки может действовать по-разному. Например, внешние прокручиваются нормально, а внутренние перемещают представление более чем в Picasa-like. Я действительно получил рабочий (!) Ответ от групп google здесь, но это был всего лишь код.
Второй - это настраиваемый JComboBox, который, когда всплывающий список расширяется, имеет JComponent в конце. Это может быть что угодно, от простой JLabel с иконкой до JButton, который каким-то образом манипулирует списком.
Но этот вопрос не касается этих конкретных компонентов. Это о поиске ресурсов (веб-сайты, книги, статьи и т.д.), Чтобы узнать, как их создавать.
Эта статья, Как написать пользовательский компонент Swing, должна быть действительно полезна. Он охватывает репликацию ползунка Windows, который имеет как дискретные шаги, так и непрерывный диапазон.
JDK является открытым исходным кодом. Чтобы понять, как вы пишете компонент Swing, нет лучшего места для поиска, чем источник для компонентов Swing. В общем, при создании пользовательских компонентов вас интересует одно или несколько из следующего: {семантика взаимодействия, визуальное представление, структура композиции}
Начните с простейших случаев:
Пассивные компоненты: JLabel
Интерактивные компоненты: JButton
JLabel
будет демонстрировать расширение barebones JComponent
для пользовательского рисования компонента; в этом случае он рисует строковое значение "text" в качестве своего представления.
JButton
будет демонстрировать расширение barebones для взаимодействия с пользователем в дополнение к рисованию компонента.
Filthy Rich Клиенты - отличная, очень читаемая книга по этой теме. Это больше связано с улучшением внешнего вида компонентов Swing, чем с созданием совершенно новых, но оно попадает в кишки Swing и предоставляет множество практических примеров.
Это довольно открытый вопрос, короткий простой ответ заключается в том, что вы подклассы JComponent
или один из его потомков и добавляете функциональность что вам нужно. Очевидно, что в зависимости от того, что вы хотите сделать, это может быть различным. Во-первых, я рекомендую вам прочитать инструкцию по использованию < с использованием компонентов Swing, где есть примеры того, как использовать scroll panes и всплывающие меню. После того, как вы прочитаете эти и экспериментировали, у вас могут возникнуть более конкретные вопросы, которые будут проще для людей, чтобы предоставить ответы на них.
Если два компонента в вашем макете - это все, что вы хотите реализовать, то предоставление нам лучшего представления о том, как вы хотите, чтобы они работали, даст лучшие ответы.
Прочитайте Swing Hacks: советы и инструменты для создания графических интерфейсов Killer (Marinacci, Adamson). ИМХО - важная книга для эффективной работы с качелями в целом.
Лично я считаю, что вышеупомянутые ответы слишком общие или неопределенные. Кроме того, поскольку кто-то неизбежно собирается столкнуться с этим потоком так же, как и я, я мог бы также предоставить то, что нашел:
Надеюсь, что это поможет...