Как Вы делаете Swing/JFace/SWT GUI адресуемым?

Я хотел бы рассмотреть возможность создания тестового примера для этого: пусть список меток содержит последний ShippingLabel, который является неправильным для базы данных (слишком длинный или что-то в этом роде), утверждают, что ни один из ShippingLabel не вставлен, refactor saveAll () для вызова nonTransactionalSaveAll (), который должен сохранить все, кроме неправильной ShippingLabel.

5
задан Nicolas Marchildon 19 November 2008 в 16:59
поделиться

4 ответа

В Swing Вы могли бы использовать CardLayout. У Вас может быть каждая "страница" быть картой, и название карты (выбранный при добавлении карт к расположению) было бы эквивалентно URI, который Вы хотите.

Пример:

String PAGE_1_KEY = "page 1";
String PAGE_2_KEY = "page 2";
// as many keys as you need

JFrame frame = ...;
frame.setLayout(new CardLayout());
frame.add(createPage1(), PAGE_1_KEY);
frame.add(createPage2(), PAGE_2_KEY);
// etc.

Затем в слушателях действия Ваших кнопок, Вы звонили бы

((CardLayout)frame.getLayout()).show(frame, PAGE_1_KEY); // or whichever
0
ответ дан 15 December 2019 в 06:37
поделиться

Мое решение для того, чтобы сделать вещи как это обычно включает шаблон слушателя. Короче говоря Вы уменьшаете связь, позволяя отправлять и получать события к, и от заинтересованных сторон (составляет композит в этом случае). Это довольно легко реализовать, модифицируя. Таким образом, Ваши события и стороны могут измениться, не изменяя зависимый код.

1
ответ дан 15 December 2019 в 06:37
поделиться

Вы могли создать "глобальный" реестр, который отображает уникальные идентификаторы на объекты (или возможно имена классов). Эти объекты могли быть JPanels, например. Когда пользователь нажимает на ссылку или кнопку, некоторый Контроллер уведомляется с ключом новой страницы, которая будет отображена. Этот Контроллер мог создать это JPanel и поместить его в кадр приложения.

1
ответ дан 15 December 2019 в 06:37
поделиться

Мой последний подход включал глобального менеджера и регистрацию ссылок. Каждая часть UI смогла назвать себя исключительно и регистр. Глобальный менеджер знает о каждом, и затем используйте некоторую грязную работу для обеспечения этой видимой части. Назад/вперед навигация была сделана специальным менеджером по отмене/восстановлению. Каждый "дисплей" смог получить менеджер навигации и зарегистрировать ее событие "отмены". Это была тяжелая работа, чтобы заставить его работать, но получающаяся функция была довольно полезна. Мы обсудили об использовании некоторого простого сервиса JNDI, чтобы определить местоположение и назвать части UI. Это может быть полезно в соединении также.

1
ответ дан 15 December 2019 в 06:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: