otwarcie nowego okna aplikacji po kliknięciu przycisku

Dyskusje na temat Javy.
saiqard
Nowicjusz
Posty: 2
Dołączył(a): niedziela, 11 kwietnia 2010, 10:43

otwarcie nowego okna aplikacji po kliknięciu przycisku

Post przez saiqard »

Witam.
Mam następujący problem:
Stworzyłem dwie aplikacje w netbeans za pomoca kreatora z połączeniem do bazy danych poprzez jdbc, następnie przeniosłem je do jednego projektu. klikając na VatApp.java albo na UzytkownicyApp.java prawym przyciskiem myszy --> run file formatka otwiera sie i działa.

Problem polega na tym, że chciałbym po kliknięciu na menuItem w jednej z zakładek, otwarła się VatApp.java, a po kliknieciu w drugi menuItem otwarło się UżytkownicyApp.java.

Wszystkie te zakładki sa tworzone przez kreatora netbeans.
Mógłby mi Pan pomóc i napisać, jaki kod powinienem wpisać w obsłudze zdarzenia aby okno się otwarło?
Próbowałem dostosować lekcje odnośnie aplikacji z wieloma ramkami, ale nie mogę sobie z tym poradzić.
Jeśli pan chce, mogę przesłać kod programu na maia
Prosze o odpowiedz i pozdrawiam
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: otwarcie nowego okna aplikacji po kliknięciu przycisku

Post przez Morfidon »

Witam,

Aplikację trzeba zrobić tak jak jest to pokazane w lekcji 16, czyli od początku w 1 projekcie, czasem jest później za dużo roboty przy łączeniu..

Code: Zaznacz cały

new VatApp.setVisible(true);
powinno otworzyć w ramce głównej np. Main, ramkę VatApp, czyli ten kod powinien się wywoływać po kliknięciu na zakładkę / button / wybór czegoś z menu etc.

Pozdrawiam,

Arkadiusz Włodarczyk
saiqard
Nowicjusz
Posty: 2
Dołączył(a): niedziela, 11 kwietnia 2010, 10:43

Re: otwarcie nowego okna aplikacji po kliknięciu przycisku

Post przez saiqard »

Tworząc aplikacje wg lekcji 16 działa tak jak Pan napisał.
Wydaje mi się, że mi nie działa dlatego, że w lekcji tworzy się klasa dziedzicząca po JFrame, a ja mam przez kreator stworzone klasy (np. VatApp.java) które dziedziczą po SingleFrameApplication. Tworzy się również VatView.java który dziedziczy po FrameView.
Stworzenie wszystkiego od początku a nie przez kreatora jest dla mnie raczej niewykonalne, ponieważ tu tworzy mi się gotowa klasa współpracująca z tabelą w bazie danych. a recznie było by to za duże wyzwanie jak dla moich umiejętności.

moją aplikacje stworzyłem poprzez:
Plik-->nowy projekt-->java-->java desktop aplication-->database application.
Używan netbeans 6.8

To nie w tym dziale, ale myśle że było by warto stworzyć lekcje, jak łączyć ze sobą aplikacje stworzone przez kreatora w netbeans.
Na pewno przydałoby sie to wielu osobom:)

Proszę o pomoc i pozdrawiam:)
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: otwarcie nowego okna aplikacji po kliknięciu przycisku

Post przez Morfidon »

W takim wypadku trzeba wcześniej skorzystać z innych metod:

http://www.jarvana.com/jarvana/view/net ... eView.html
- getFrame();

http://www.jarvana.com/jarvana/view/net ... ation.html

- getMainFrame();

Pozdrawiam,

Arkadiusz Włodarczyk
Gość

Re: otwarcie nowego okna aplikacji po kliknięciu przycisku

Post przez Gość »

Próbuje to zrobić poprzec:

Code: Zaznacz cały

 JFrame vatOtwarcie = vat.VatApp.getApplication().getMainFrame();
 vat.VatApp.getApplication().show(vatOtwarcie);
ale wywala mi wyjątek:

Code: Zaznacz cały

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: Cannot cast controlling.ControllingApp to vat.VatApp
        at java.lang.Class.cast(Class.java:3007)
        at org.jdesktop.application.Application.getInstance(Application.java:605)
        at vat.VatApp.getApplication(VatApp.java:35)
        at controlling.ControllingView.jMenuItem1ActionPerformed(ControllingView.java:214)
        at controlling.ControllingView.access$800(ControllingView.java:22)
        at controlling.ControllingView$4.actionPerformed(ControllingView.java:152)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
        at javax.swing.AbstractButton.doClick(AbstractButton.java:374)
        at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1688)
        at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1732)
        at java.awt.Component.processMouseEvent(Component.java:6108)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:5873)
        at java.awt.Container.processEvent(Container.java:2105)
        at java.awt.Component.dispatchEventImpl(Component.java:4469)
        at java.awt.Container.dispatchEventImpl(Container.java:2163)
        at java.awt.Component.dispatchEvent(Component.java:4295)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4461)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4125)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4055)
        at java.awt.Container.dispatchEventImpl(Container.java:2149)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4295)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:604)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: otwarcie nowego okna aplikacji po kliknięciu przycisku

Post przez Morfidon »

Nie jestem pewien czy to zadziała bo nie widzę całości, ale może tak?

Code: Zaznacz cały

new vat.VatApp.getMainFrame().setVisible(true);
Post Reply