Tworzymy projekt File->New Project->Java Application, przy czym tym razem odznaczamy create main class Mamy Prawym przyciskiem na default packeges I wybieramy New JFrame. Teraz pamiętajmy o podaniu jakiejś nazwy pakietu. (Jeśli zapomnimy o pakiecie, to można stworzyć potem nowy pakiet nazwany i przeciągnąć zawartość z tego default)
Otrzymamy Teraz widzimy zakładkę design, czyli nasze okno ramowe/formatke, a klikając zakładkę Source, możemy obejrzeć kod wygenerowany przez Netbeans. Na szaro to co robi automat i nie możemy zmieniać. Zwróćmy uwagę ma main tworzenie i pokazywanie okna w kolejce obsługi zdarzeń. A powyżej w main można rozwinąć i zmienić Look& Feel na inny (zamiast Nimbus wstawić Metall, lub Windows ale lepiej to zrobić jak już będzie więcej elementów żeby zobaczyć różnicę w wyglądzie) Teraz możemy znowu wrócić do design i dodać z paletki z kontrolkami etykiete Label, ustawić jej tekst(klikając na nią prawym przyciskiem myszy i Edit Text lub w panelu z properties dla niej wybrać text), a potem przycisk Button.
Klikając raz na przycisku można zmieniać text (tylko wtedy łatwo wskoczyć od razu w kod obsługi zdarzenia)(albo prawym przyciskiem i Edit Text albo to samo można we właściwościach przycisku okienko po prawej na dole, tam zresztą jest wiele innych użytecznych właściwości- warto sobie poogladać) Na razie w oknie nie mamy zarządcy rozkładu (będą później- na razie wkładamy jak na m pasuje), i widzimy takie te niebieski kreseczki do krawędzi, to jest rozkład Free i jak potem zobaczycie kod bardzo namieszane. Popatrzcie na kod. Teraz czas na obsługę zdarzeń Alb dwa razy klikamy na przycisku, albo prawym przyciskiem myszy I uzupełniamy kod tu zmiana tla na czerwony: private void jbutton1actionperformed(java.awt.event.actionevent evt) { getcontentpane().setbackground(color.red); //na warstwie treściowej okna (ContentPane) ustalamy tło na czerwone
Obejrzyjcie teraz jak jest zrealizowana obsługa zdarzenia poprzez klasę anonimowa: jbutton1.addactionlistener(new java.awt.event.actionlistener() { ); public void actionperformed(java.awt.event.actionevent evt) { jbutton1actionperformed(evt); Możemy to zmienić, wróćmy do design i kliknijmy po lewej na form, wtedy panel po prawej z właściwościami też jest do form. I Listener General style jest anonymous. Możemy zmieniać na inne i obserwować jak się zmienia kod. Potem dodajemy drugi przycisk. Korzystamy z gotowego dialogu: JColorChooser. Na nim showdialog(null, "Wybierz kolor", getcontentpane().getbackground()); Pierwszy parametr właściciel, u nas null- centrowanie, napis, a ostatni kolor startowy w tym okienku do kolorów- u nas z warstwy z zawartością (ContentPane) pobieramy kolor tła. Kod obsługi zdarzenia akcja: private void jbutton2actionperformed(java.awt.event.actionevent evt) { Color color = JColorChooser.showDialog(null, "Wybierz kolor", getcontentpane().getbackground()); if (color!= null) {//jesi ktos cos wybral getcontentpane().setbackground(color);
Następne zadanie ma pokazać że nie tylko jest zdarzenia akcja Zrobimy sobie Panel (to kontener) zmienimy mu tło (background )w properties, żeby było go widać. Potem poniżej etykietę Label na niej chcemy wyświetlać położenie myszy w panelu. Więc na panelu wybieramy: I obsługujemy zdarzenie następująco: private void jpanel1mousemoved(java.awt.event.mouseevent evt) { jlabel2.settext("(" + evt.getx() + "," + evt.gety() + ")"); Ostatni element to pole edycyje TextArea i menu jak w treści zadania. Najpierw Menu Bar- potem zamieniamy File i Edit na polskie nazwy. Następnie dodajemy poszczególne elementy w menu, można je przeciągać (ale czasami uciekają), pewniej z menu kontekstowego Pogrubienie i Pochylenie to MenuItem/CheckBox, a pozostałe to menu item.
Ustalamy teksty i shortcuts. Wybór opcji w menu to znów zdarzenia akcja: private void jmenuitem7actionperformed(java.awt.event.actionevent evt) { jtextarea1.cut(); private void jmenuitem5actionperformed(java.awt.event.actionevent evt) { jtextarea1.copy(); { private void jmenuitem6actionperformed(java.awt.event.actionevent evt) jtextarea1.paste();