Нужно создать WIZARD на NetBeans (jDialog против CardLayout)? - PullRequest
1 голос
/ 14 октября 2011

Я хотел бы создать «мастера» на JDialog, используя CardLayout, который запускается пользователем при нажатии кнопки «Создать» на панели меню. В Netbeans я создал JDialog, через который у меня есть серия jPanels в формате CardLayout. В моем пункте меню «Новый» я написал следующий код для запуска jDialog следующим образом:

 CardLayout cl = (CardLayout) jDialogNew.getLayout();
 cl.preferredLayoutSize(jDialogNew);
 cl.show(jDialogNew, "card1");

Однако компилятор выдает следующую ошибку:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException:
    java.awt.BorderLayout cannot be cast to java.awt.CardLayout

Если кто-нибудь может помочь мне с созданием волшебника в Netbeans, я буду вечно благодарен

Ответы [ 3 ]

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

Ваш jDialogNew имеет установленный BorderLayout в качестве своего макета, а не CardLayout, что означает, что когда вы вызываете getLayout (), чтобы попытаться поместить его в переменную, которая не может содержать BorderLayout, генерируется исключение.Классы разные, поэтому вы не можете приводить их от одного к другому, вызывая ClassCastException.

Возможное решение этой проблемы - установить собственный макет для jDialogNew.У меня нет кода передо мной, поэтому я не могу проверить себя, но попробуйте поискать метод, подобный setLayout (), и передать новый макет по вашему выбору.

1 голос
/ 02 августа 2012

Вы можете сделать с помощью следующих

create JFrame -> Add "CARD LAYOUT"

добавления JPanels в проект.Дизайн JPanels.Настройте код инициализации JFrame.Вставьте JPanels с this.add(jpanel name).для всех jpanels setVisible (false) - затем setVisible true, с какой jpanel вы хотите начать.

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

То, как я это делал в Netbeans, было очень легко!Все, что мне нужно было сделать, - это ввести отдельный JFrame в свой пакет ресурсов (являющийся частью моего общего пакета), и в этом JFrame я создал JPanel с CardLayout, в рамках которого я создал все свои другие JPanel, относящиеся к этой вершине.JPanel.Теперь, имея JFrame, я могу установить свой фиксированный холст плюс все остальное, что мне нужно, чтобы создать и активировать диалоговое окно «Мастер» CardLayout!Затем мне приходилось вызывать новый JFrame из моего приложения всякий раз, когда происходило событие.Это сделало жизнь намного проще, и она работает просто великолепно!

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