Java на habrahabr
JAVA / Swing. Десять полезных простых вещей
Хочу поделиться недавним опытом разработки апплетов на Swing и рассказать про подводные камни, приемы найденные и использованные в процессе работы.
Лента публикаций русскоязычной блогосферы
по программированию на языке Java
Хочу поделиться недавним опытом разработки апплетов на Swing и рассказать про подводные камни, приемы найденные и использованные в процессе работы.
На Хабрахабре очень мало статей о SWT, поэтому я постараюсь исправить данное маленькое упущение.
Из данной статьи Вы узнаете:
У любителей спросить данные через swing-форму я частенько наблюдаю код вроде такого:
MyDialogFrame frame = new MyDialogFrame();
while(!frame.wasInput()){
Thread.sleep(1000);
}
MyCompexObject myObject = frame.getComplexObject();
frame.dispose();
Идея проста: по нажатию на кнопку создаем объект по данным формы и выставляем флаг. А в коде основного приложения периодически этот флаг проверяем. Но, согласитесь, получившийся код нельзя назвать красивым — лишний while, лишний метод wasInput, лишняя констатнта 1000.
Под катом я напишу пример, как этого добра избежать
Придя в большой проект, использующий в качествe графического интерфейса Swing, я понял, что разобраться в логике и связах между компонентами JDialog или JFrame довольно таки не просто. И всё то время, что я разбирался с этим кодом я пытался найти какое-то универсальное решение, которое бы позволило избежать сложности связей между элементами интерфейса.
Теги:
Swing
графический интерфейс
пользовательский интерфей
конечный автомат
state machine
Для Swing существует несколько коммерческих и бесплатных библиотек LookAndFeel. Использование LAF позволяет менять внешний вид приложений и добавлять поддержку тем оформления практически без кодирования.
Одной из наиболее качественных LAF-библиотек является Substance. Она включает в себя хорошо прорисованные стандартные компоненты и более десятка скинов:
Рассмотрим как можно с помощью Substance добавить в приложение возможность выбора скинов пользователем.
Библиотека Swing появилась примерно 15 лет назад и все эти 15 лет КАЖДЫЙ кто начинает программировать на Java задаёт один и тот же вопрос:
— Почему я не могу просто добавить кнопки с полями на форму без изучения всех этих LayoutManager'ов?
В стандарной JRE содержится больше десятка классов для компоновки элементов (FlowLayout, GroupLayout и т.п.), постоянно появляются новые компоновщики типа MigLayout но ситуация не улучшается.
Рассмотрим варианты создания форм типа этой:
Теги:
Java
Swing
Layout
LayoutManager
Теги:
Java
Swing
окна
непрямоугольные
java2d
Shape
skin regions
shaped
Некоторое время назад мне в голову пришла мысль создать библиотеку для быстрой генерации форм на Java Swing. Расскажу, как я к этому пришел.
Теги:
Java
Swing
reflection
metawidget
beans
binding
introspection
jgoodies
cglib
Привет читатель.
Хочу рассказать про инструмент для Java на который я недавно наткнулся и не нашел на хабре ни одного упоминания о нем. Называется он Metawidget и его предназначение — генерировать формы в Java.
Я создаю вручную легенду для диаграммы в JFreeChart:
LegendItemCollection chartLegend = new LegendItemCollection();
Shape shape = new Rectangle(10, 10);
chartLegend.add(new LegendItem("Item 1", null, null, null, shape, item1Color));
chartLegend.add(new LegendItem("Item 2", null, null, null, shape, item2Color));
plot.setFixedLegendItems(chartLegend);
Теперь мне надо вместо цветного квадрата нарисовать символ. К примеру, красный восклицательный знак. Как мне это сделать?
Заранее спасибо.
Теги:
Swing