Вопрос

у меня есть JMenu с А. JMenuItem, и когда я нажимаю на это, мне нужно открыть JFrame или окно, другими словами компонент с внутри JButton, JTextField,...

Как я могу это сделать ?

Это было полезно?

Решение

Вы можете создать JFrame Точно так же вы создали свой начальный JFrame, и вызов

setVisible(true);

в ActionListener вашей JMenuItem Чтобы сделать это видимым, когда нажатие меню.


Если вы хотите, чтобы это было модальным (оригинальный кадр не может быть доступен, если новое окно не будет закрыто), вы можете использовать JDialog Вместо этого установка modal правда в конструкторе или звонить setModal(true).

Другие советы

Я пишу в ответе на хороший вид кода:

Если я использую JFrame, я получил эту ошибку: «Java.lang.illegalargumentException: добавление окна в контейнер».

Это мой код в методе ActionPerformed:

PopupFactory factory = PopupFactory.getSharedInstance();
JFrame frame = new JFrame();
frame.setLayout(null);
frame.setBounds(428, 99, 185, 155);

final JButton button = new JButton();
button.setText("Button");
button.setBounds(10, 93, 111, 25);
frame.getContentPane().add(button);

final Popup popup = factory.getPopup(null, frame, 200, 200);
popup.show();

Вы запутаете «всплывающие окна» и «Windows».

Всплывание обычно отображается при щелчке правой кнопкой мыши на какой-то объекте. Всплывание отобразит список действий, которые могут быть выполнены на этом объекте. Например, текстовое поле может иметь «вырезать», «скопировать» и «вставить». Прочитайте раздел с учебного пособия по качеству на «Поднимая всплывающее меню" Чтобы получить больше информации.

Окно используется для отображения других компонентов качания в JFrame или JDialog.

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

Также, читая учебное пособие, прочитайте раздел «Использование менеджеров макета». Использование нулевых макетов - это не лучший способ создания диалога.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top