Есть ли в Swing похожий компонент, такой как тег HTML <select>? - PullRequest
2 голосов
/ 08 июля 2010

Я хочу отобразить некоторую информацию в JMenuItem.Формат данных примерно такой:

1-1|Menu Name1

1-2|Menu Name2

Моя проблема в том, что когда я создаю JMenuItem, он отображает всю пару ключ-значение.Мне интересно, есть ли подобное поведение в Swing, как в HTML

<SELECT>
 <OPTION value="1-1">Menu Name1</OPTION>
 <OPTION value="1-2">Menu Name2</OPTION>
</SELECT>

... где пользователь никогда не видит ключ, а видит только значения.

Я незнакомы с Swing, поэтому, если кто-то знает подобное поведение, как HTML, используя стиль JMenuItems, пожалуйста, поделитесь.

заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 08 июля 2010
2 голосов
/ 08 июля 2010

Если я правильно понимаю, вам нужно установить другое доступное свойство для JMenuItem, чтобы при нажатии пользователем на элемент меню вы могли прочитать соответствующее значение, которое можно использовать для некоторых других целей.

Для этого попробуйте setActionCommand API; Таким образом, вы можете связать любую строку с элементом меню, а в коде обработки событий вы можете выполнить getActionCommand для исходного объекта, который сгенерировал событие.

Примечание: у вас 0% приемлемости. Это означает, что вы не принимаете никаких ответов на вопрос, который вы разместили. Не ожидайте, что слишком много людей ответят на ваши вопросы.

0 голосов
/ 08 июля 2010

Если вы заключите свою пару ключ-значение в один объект, вы можете передать эти объекты в JMenu. Чтобы убедиться, что в этом меню отображается только часть информации об объектах (в данном случае это значение), вы можете захотеть «взломать» рендеринг JMenuItem (путем получения собственного класса и работы с paintComponent () , Я думаю), или просто измените метод toString () - переданного объекта (если это практически возможно, это может привести к некоторым проблемам в зависимости от дальнейшего использования этих объектов) для возврата только значения, которое должно отображаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...