JButton внутри JMenuItem - PullRequest
       21

JButton внутри JMenuItem

0 голосов
/ 19 октября 2011

Я пытаюсь построить конкретный JMenu. Я хочу JMenuItem с JMenu функциональностью, т.е. когда мы щелкаем по нему, элемент должен что-то делать (например, открывать диалог). Но JMenuItem также должен содержать кнопку (или другой компонент), который при нажатии на нее должен открывать всплывающее окно с парой опций.

Итак, до сих пор у меня есть что-то вроде этого:

Desired UI

Это то, что у меня есть, прежде чем щелкнуть стрелку.

Моя проблема в том, что когда я нажимаю кнопку (стрелка), подменю фактически открывается, но элемент меню, содержащий эту кнопку, закрывается, потому что теряет фокус.

Broken UI

Это результат после нажатия кнопки со стрелкой.

Есть ли способ справиться с этим? Или лучший способ иметь такое поведение?

Ответы [ 4 ]

2 голосов
/ 19 октября 2011

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

2 голосов
/ 19 октября 2011

Это не то, для чего предназначено меню.Вместо этого используйте ленту , и все это будет легко и естественно.

1 голос
/ 19 октября 2011

Почему бы просто не использовать вместо этого простой вложенный JMenuItem?Что-то вроде this (первый экран сверху).

С другой стороны, вы можете воспользоваться аналогичным решением, описанным здесь .

0 голосов
/ 24 октября 2011

Не удалось найти решение для этой конкретной проблемы.В качестве обходного пути я использовал просто простую кнопку, которая переключается между опцией 1 и опцией 2, вместо кнопки (стрелки), которая открывает новое всплывающее окно.Большое спасибо за вашу помощь.

...