| « Поставить закладку » « Сделать стартовой » | |||
|
|||
|
Help tips в Swing
Перевод на русский © Сергей Миссан, 2000 Java Q&A Возможно ли сделать поддержку help tips для меню в Swing? В компьютерном мире достаточно распространены приложения, показывающие краткую справку (help tip) в строке статуса, когда пользователь выбирает один из элементов меню. Я был удивлен тем, что набор компонентов меню в Swing не поддерживает такую возможность. Есть ли способ создать такую функциональность, не создавая подкласс одного из огромных классов Swing? Мне удалось заставить работать таким образом неизмененный класс JMenuItems: myMenu.add(new JMenuItem("Save As...")); создавая подкласс JMenuItems и перекрывая метод menuSelectionChanged(). К сожалению, так нельзя поступить ни с элементами меню, созданными с помощью action (которая возвращает чистый JMenuItem), ни с JCheckBoxMenuItems или JRadioButtonMenuItems. Я использую JDK 1.2.2 FCS. Эксперты Java Q&A рекомендуют использовать делегирование к базовому adapter class вместо наследования, для того, чтобы получить требуемую функциональность. Adapter class возьмет JMenuItem, строку (String) со справочной информацией и JLabel, как строку статуса для отбражения сообщения. В момент выбора элемента меню adapter class отобразит соответствующий текст в строке статуса. Сложная часть этой задачи: как обнаружить, какое событие мы должны отслеживать? Оказывается, ChangeEvent создается, когда активируется или деактивируется элемент меню. В Java для этого используется термин arming элемента меню. Таким образом, мы можем написать следующий adapter class: class MenuHelpTextAdapter
implements ChangeListener
{
private JMenuItem menuItem;
private String helpText;
private JLabel statusBar;
public MenuHelpTextAdapter(
JMenuItem menuItem,
String helpText,
JLabel statusBar)
{
this.menuItem = menuItem;
this.helpText = helpText;
this.statusBar = statusBar;
menuItem.addChangeListener(this);
}
public void stateChanged(ChangeEvent evt)
{
if (menuItem.isArmed())
statusBar.setText(helpText);
else
statusBar.setText(" ");
}
}
Код, который создает adapterы для элементов меню достаточно прост: new MenuHelpTextAdapter(
item1, "
Help text for item 1",
statusBar);
new MenuHelpTextAdapter(
item2,
"Item 2 info",
statusBar);
Используя этот adapter, как внутренний класс в данном случае, мы можем создать полную программу: import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
public class StatusBarTest
{
JLabel statusBar;
JMenuItem item1;
JMenuItem item2;
private void init()
{
JFrame frame =
new JFrame("Status Bar Test");
JMenuBar menuBar = new JMenuBar();
frame.setJMenuBar(menuBar);
JMenu fileMenu = new JMenu("File");
menuBar.add(fileMenu);
item1 = new JMenuItem("Item 1");
item2 = new JMenuItem("Item 2");
fileMenu.add(item1);
fileMenu.add(item2);
Container contentPane =
frame.getContentPane();
contentPane.setLayout(new BorderLayout());
contentPane.add(
"Center", new JButton(
"Main application area"));
statusBar = new JLabel(" ");
contentPane.add("South", statusBar);
new MenuHelpTextAdapter(
item1, "Help text for item 1", statusBar);
new MenuHelpTextAdapter(
item2, "Item 2 info", statusBar);
frame.setSize(400,400);
frame.setVisible(true);
}
public static void main(String[] args)
{
StatusBarTest t = new StatusBarTest();
t.init();
}
class MenuHelpTextAdapter
implements ChangeListener
{
private JMenuItem menuItem;
private String helpText;
private JLabel statusBar;
public MenuHelpTextAdapter(
JMenuItem menuItem,
String helpText,
JLabel statusBar)
{
this.menuItem = menuItem;
this.helpText = helpText;
this.statusBar = statusBar;
menuItem.addChangeListener(this);
}
public void stateChanged
(ChangeEvent evt)
{
if (menuItem.isArmed())
statusBar.setText(helpText);
else
statusBar.setText(" ");
}
}
}
Об автореRandom Walk Computing это наибольшая консалтинговая фирма в Нью Йорке, специализирующаяся на Java/CORBA решениях для предприятий. Известные своим выдающимся знанием Java, консультанты Random Walk публикуются и выступают на самых престижных форумах мира. Для связи с Random Walk используйте javaqa@javaworld.com.Reprinted with permission from the March 2000 edition of JavaWorld
magazine. Рубрика: Java Q&A
HTML 5: пять вещей вызывающих особый интер....
HTML 5 — это грядущее обновление гипертекстового языка разметки, основного способа создания контента для размещения его во всемирной паутине. Разработка HTML остановилась в 1999 году, на версии HTML 4.01 и с тех пор web-содержимое изменилось так, что текущие спецификации HTML перестали соответствовать сегодняшним требованиям. HTML 5 нацелен на то, чтобы увеличить функциональную совместимость HTML и соответствовать растущим требованиям разнообразного и смешанного web-контента. HTML 5 так же нацелен на устранение недостатков четвертой версии. В этой статье мы взглянем на 5 новых интересных вещей в HTML 5.
Подробнее... |
Рубрика: Html
| Добавлено: 22.12.2008
asp.net: ListView с разных сторон.
Элемент управления ListView был представлен в .Net Framework 3.5 как замена устаревшему GridView. Новый элемент имеет более расширенный функционал, чем его предшественник, но в тоже время лишен некоторых внутренних механизмов, что впрочем целиком следствие из расширенной универсальности ListView. Среди отличий ListView и GridView можно назвать и гибкую настройку разметки, что позволяет выводить данные не только в табличном виде, но и вообще в любом каком пожелает программист. Благодаря шаблонам ItemTemplate, EditItemTemplate, InsertItemTeplate можно настроить внешний вид при любом из состояний ListView: редактировании или выборе элемента.
Подробнее... |
Рубрика: .NET компоненты
| Добавлено: 22.12.2008
Создание кросс-таб отчета в Stimulsoft Rep....
Компания Стимулсофт предоставляет для разработчиков мощный набор инструментов для создания отчетов для Microsoft Visual Studio .Net 2005 и 2008; эти инструменты доступны как для Windows Forms, так и для Web Forms. Это генератор отчетов Stimulsoft Reports.Net. Генератор отчетов Stimulsoft Reports.Net имеет ряд особенностей: простая работа с дизайнером отчетов, полная поддержка экспорта в PDF, Word, Excel и многие другие форматы. Crystal Report и Microsoft Reporting Service – очень хорошие программные продукты для повседневной работы, но, если Вам необходимо создать отчеты с поддержкой кросс-табов, drill down, Ajax, штрих-кодов и возможностью подключения одновременно более одного источника данных, то Stimulsoft Reports.Net поможет Вам сэкономить массу времени. Также, данный генератор отчетов позволяет пользователям создавать свои собственные отчеты любой сложности. И все эти особенности делают Stimulsoft Reports.Net хорошим выбором в сфере программных продуктов для Business Intelligence.
Подробнее... |
Рубрика: .NET компоненты
| Добавлено: 22.12.2008
Остальные статьи: |
Цитата дня (все,добавить):
|
Realcoding.NET
© 2003-2008 |
Контакты |
Реклама на сайте
|