Iteracyjno-rozwojowy cykl oprogramowania 4

Podobne dokumenty
Wykład 4_2 część druga. Iteracyjno-rozwojowy cykl oprogramowania 4

Instrukcja 4 Laboratorium z Podstaw Inżynierii Oprogramowania. Warstwa klienta: Interfejs graficzny użytkownika

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

Połączenia między bazami danych i programem w języku Java część 2

Wykład 4_1. Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy.

Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy. Tworzenie łącz w apletach

Pierwsza ramka. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 10

Aplikacja wielowątkowa prosty komunikator

Aplikacja wielow tkowa prosty komunikator

Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com

setdefaultcloseoperation(jframe.exit_on_close);//obsługa zamykania aplikacji setvisible(true); } //wyświetlenie okna

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Iteracyjno-rozwojowy cykl oprogramowania cykl 2. Java Zofia Kruczkiewicz 1

Programowanie graficznych interfejsów użytkownika

WYMIANA I SKŁADOWANIE DANYCH MULTIMEDIALNYCH

Kontenery i komponenty graficzne

Comparable<Klasa_uzytkownika>

JAVA. Strumienie wejścia i wyjścia. Pliki - zapis i odczyt

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

Programowanie obiektowe

Instrukcja 5 Laboratorium z Podstaw Inżynierii Oprogramowania. Warstwy integracji z bazą danych: Wzorzec DAO Technologia ORM

1. Zakładanie projektu Katalog typu Java Class Library do przechowywania obiektowego modelu danych projekt należy do warstwy biznesowej

Java niezbędnik programisty spotkanie nr 12. Graficzny interfejs użytkownika

Bartosz Jachnik - Kino

Instrukcja 3 Laboratorium z Podstaw Inżynierii Oprogramowania

Języki i metody programowania Java Lab6 Budowa interfejsu graficznego użytkownika (GUI Graphical User Interfaces) z wykorzystaniem pakietu Swing

POLIMORFIZM, INTERFEJSY, PROGRAMOWANIE ZDARZENIOWE

Java - interfejs graficzny

Języki i metody programowania Java Obsługa zdarzeń - przykłady

Programowanie obiektowe

Programowanie zdarzeniowe

Laboratorium 8 Diagramy aktywności

Protokół JDBC współpraca z relacyjnymi bazami danych

Informatyka i Ekonometria Programowanie komputerów Ćwiczenia Tworzenie aplikacji wykorzystaniem graficznego interfejsu użytkownika - Swing.

SWING ZAGADNIENIA: wprowadzenie, kontenery I komponenty, LayoutManager, komponenty tekstowe.

Te atrybuty wewnętrzne są wyrażane za pomocą tzw. metryk, czyli prostych wyrażeń, wiążących pewne elementy programu (projektu, kodu źródłowego itp.).

Języki i metody programowania Java. Wykład 2 (część 2)

Tworzenie elementów graficznych

Języki i metody programowania Java Lab6 Budowa interfejsu graficznego użytkownika (GUI Graphical User Interfaces) z wykorzystaniem pakietu Swing

Java Foundation Clases. Tworzenie graficznych interfejsów użytkownika (GUI) w Javie

Wykorzystywanie parsera DOM w programach Java i PL/SQL

Programowanie graficznych interfejsów uŝytkownika

Kurs programowania. Wykład 4. Wojciech Macyna. 23 marca 2016

SWING. dr Jarosław Skaruz

Przykład zastosowania notacji UML dla realizacji zastosowania wzorca Mediator (materiały dla studentów na prawach rękopisu)

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

SWING c.d. przydatne narzędzia: JFileChooser, JOptionPane. drag'n drop, menu kontekstowe.

Laboratorium 2_3_4 Wzorce oprogramowania zastosowane w modelu obiektowym (wg Alan Shalloway, James R.Trott)

Te atrybuty wewnętrzne są wyraŝane za pomocą tzw. metryk, czyli prostych wyraŝeń, wiąŝących pewne elementy programu (projektu, kodu źródłowego itp.).

Tworzymy projekt File->New Project->Java Application, przy czym tym razem odznaczamy create main class

Instrukcja 1 Laboratorium z Podstaw Inżynierii Oprogramowania. Relacja 1 do 1..0 instrukcja z lab1

Obsługa zdarzeń w JAVIE ((ActionListener,ItemListener,TableModelListener))

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Wstęp do JUNG. Omówione elementy wykorzystane w Edge Color Project

Tworzenie i obsługa graficznego interfejsu uŝytkownika

Język Java część 2 (przykładowa aplikacja)

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Przykładowe roz wiązanie:

Metody Metody, parametry, zwracanie wartości

Jakarta POI. POIFS obsługa dokumentów OLE 2, HSSF dokumenty w formacie Excel'a, HWPF proste dokumenty w formacie Word 97,

Programowanie obiektowe

Metryki. Przykłady pomiaru złożoności modułowej i międzymodułowej oprogramowania. autor: Zofia Kruczkiewicz

Wykład 7: Pakiety i Interfejsy

Metryki logicznej struktury programu, czyli przepływu sterowania Liczby cyklomatyczne McCabe V LI (G) = e n +p+1, V(G) = e n + 2*p

Programowanie w języku Java

Programowanie w Javie Wykład 6 Okienka w Javie (AWT)

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Aplikacje RMI. Budowa aplikacji rozproszonych. Część 2.

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7

DOSTĘP DO METOD I ZMIENNYCH. Dostęp do zmiennych (na podstawie:l.lemay,r.cadenhead,java 2 dla każdego, Helion 2001)

Graphic User Interfaces pakiet Swing

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP

Aplikacje RMI Lab4

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

Programowanie graficznego interfejsu użytkownika. Wykład 8. Maciej Wołoszyn 10 maja 2006

SWING ZAGADNIENIA: wprowadzenie, kontenery i komponenty, LayoutManager, komponenty tekstowe. inne przydatne komponenty.

Diagram stanów Laboratorium 9

Podejście obiektowe. Tablice (1) obiektów

Zaawansowane programowanie obiektowe. Wykład 3 część 2

1. Co można powiedzieć o poniższym kodzie? public class A { void m(int a) { } int m(string s) { return Integer.parseInt(s); }

Klasy abstrakcyjne. Klasę abstrakcyjną tworzymy przy pomocy modyfikatora abstract

Ćwiczenie 8. Rozległe sieci komputerowe

Java SE Laboratorium nr 5. Temat: Obsługa zdarzeń

Systemy Rozproszone. Spis treści. Temat projektu: Regułowy system analizujacy logi. autorzy: Rafał Sadłowski, Sebastian Falkus, Michał Różycki

Informatyka I. Interfejs GUI wysokiego poziomu. Biblioteka Swing. Programowanie zdarzeniowe. Politechnika Warszawska Wydział Transportu 2018

Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0 Zofia Kruczkiewicz

1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {}; static public void m2() {}; void abstract m3();

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Programowanie obiektowe

PWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub

Java: interfejsy i klasy wewnętrzne

Przykład 1 Iteracja 2 tworzenia oprogramowania Diagramy klas i sekwencji:

dziedziczenie - po nazwie klasy wystąpią słowa: extends nazwa_superklasy

Programowanie obiektowe

1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4);

Operatory. Składnia. Typy proste. Znaki specjalne

Programowanie obiektowe

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Transkrypt:

Iteracyjno-rozwojowy cykl oprogramowania 4

I. Przykład pierwszy programu z warstwą klienta (interfejs graficzny użytkownika) i warstwą biznesową dostępną za pomocą metod klasy Uchwyt

/** * <p></p> * * / public class GUI { /** * <p>represents...</p> * */ private JText TWydawnictwo; /** *<p>represents...</p>* */ private JText TTytul; /** *<p>represents...</p>* */ private JText TNazwisko; /** * <p>represents...</p>* */ private JText TImie; /** * <p>represents...</p>* */ private JText TISBN; /** * <p>represents...</p>* */ private JText TNumer; /** * <p>does...</p> * */ public void actionperformed() /** * <p></p> * */ {// your code here public Uchwyt uchwyt_1; /** * <p></p> * */ public class String { /** @poseidon-generated */ public Uchwyt getuchwyt_1() { return uchwyt_1; /** @poseidon-generated */ public void setuchwyt_1(uchwyt uchwyt) { this.uchwyt_1 = uchwyt;

// kod napisany przez programistę public class Baza {public Uchwyt uchwyt=new Uchwyt(); public GUI gui; static public void main(string arg[]) { Baza baza = new Baza(); try { baza.gui = new GUI(baza.uchwyt); baza.gui.show(); catch(exception e) { System.out.println("Blad bazy "+e);

import java.sql.*; import javax.swing.*; import java.util.*; import java.io.*; import java.lang.*; import java.awt.event.*; public class GUI extends JFrame implements ActionListener { JLabel elista_tytulow = new JLabel ("Tytuly ksiazek"); JComboBox tytuly = new JComboBox(); JLabel elista_ksiazek= new JLabel ("Ksiazki"); JComboBox ksiazki = new JComboBox(); JLabel etytul = new JLabel (" Tytul ksiazki"); JTextField TTytul = new JTextField(30); JLabel enazwisko = new JLabel ("Nazwisko autora ksiazki"); JTextField TNazwisko = new JTextField(30);

JLabel eimie= new JLabel (" Imie autora ksiazki"); JTextField TImie = new JTextField(30); JLabel eisbn= new JLabel (" ISBN tytulu"); JTextField TISBN= new JTextField(30); JLabel ewydawnictwo = new JLabel (" Wydawnictwo"); JTextField TWydawnictwo=new JTextField(30); JLabel enumer= new JLabel (" Numer ksiazki"); JTextField TNumer= new JTextField(30); JButton zapisz_tytul= new JButton("Zapisz tytul"); JButton zapisz_ksiazke= new JButton("Zapisz ksiazke"); JButton wyswietl_tytuly= new JButton("Wyswietl tytuly"); JButton wyswietl_ksiazki= new JButton("Wyswietl ksiazki"); Uchwyt dane;

GUI(Uchwyt uchwyt) { super("aplikacja UML"); setsize(500,350); setdefaultcloseoperation(jframe.exit_on_close); JPanel panel= new JPanel(); panel.add(etytul); panel.add(ttytul); panel.add(enazwisko); panel.add(tnazwisko); panel.add(eimie); panel.add(timie); panel.add(eisbn); panel.add(tisbn); panel.add(ewydawnictwo); panel.add(twydawnictwo); panel.add(enumer); panel.add(tnumer);

zapisz_tytul.addactionlistener(this); panel.add(zapisz_tytul); zapisz_ksiazke.addactionlistener(this); panel.add(zapisz_ksiazke); wyswietl_tytuly.addactionlistener(this); panel.add(wyswietl_tytuly); wyswietl_ksiazki.addactionlistener(this); panel.add(wyswietl_ksiazki); panel.add(tytuly); panel.add(elista_tytulow); panel.add(ksiazki); panel.add(elista_ksiazek); setcontentpane(panel); dane= uchwyt;

public void actionperformed (ActionEvent evt) { String s1,s2,s3,s4,s5; Tytul_ksiazki t; Object zrodlo = evt.getsource(); if ( zrodlo==zapisz_tytul) { s1=tnazwisko.gettext(); s2=timie.gettext(); s3=ttytul.gettext(); s4=twydawnictwo.gettext(); s5=tisbn.gettext(); if (!s1.equals("") &&!s2.equals("") &&!s3.equals("") &&!s4.equals("") &&!s5.equals("")) { dane.dodaj_tytul(s1, s2, s3, s4, s5);

else if (zrodlo == zapisz_ksiazke) { s1=tisbn.gettext(); s2=tnumer.gettext(); if (!s1.equals("")&&!s2.equals("")) { dane.dodaj_ksiazke(s1, Integer.parseInt(s2)); else if(zrodlo == wyswietl_tytuly) { tytuly.removeallitems(); Iterator iterator = dane.gettytul_ksiazki().iterator(); while(iterator.hasnext()) { s1=((tytul_ksiazki)iterator.next()).tostring(); tytuly.additem(s1);

else if (zrodlo == wyswietl_ksiazki) { ksiazki.removeallitems(); Iterator iterator1 = dane.gettytul_ksiazki().iterator(); //pobranie kolekcji tytul_ksiazki while(iterator1.hasnext()) { t=(tytul_ksiazki)iterator1.next(); //pobranie kolekcji ksiazka Iterator iterator2 = t.getksiazka().iterator (); while(iterator2.hasnext()) { s1=((ksiazka)iterator2.next()).tostring(); ksiazki.additem(s1); repaint(); // koniec metody actionperformed // koniec klasy GUI

II. Przykład drugi programu z warstwą klienta (interfejs graficzny użytkownika) i warstwą biznesową dostępną za pomocą metod klas Uchwyt

Wykonanie interfejsu graficznego metodą wizualną

Obsługa zdarzeń wywołanie metody uchwytu obsługi zdarzeń

Przypadek użycia dodaj_tytul

Przypadek użycia dodaj_ksiazke

Prezentacja tytułów książek

Prezentacja książek

Klasa programu - Baza

Struktura programu

private void initcomponents() { jlabel1 = new javax.swing.jlabel(); jtextfield1 = new javax.swing.jtextfield(); jlabel2 = new javax.swing.jlabel(); jtextfield2 = new javax.swing.jtextfield(); jlabel3 = new javax.swing.jlabel(); jtextfield3 = new javax.swing.jtextfield(); jlabel4 = new javax.swing.jlabel(); jtextfield4 = new javax.swing.jtextfield(); jlabel5 = new javax.swing.jlabel(); jtextfield5 = new javax.swing.jtextfield(); jlabel6 = new javax.swing.jlabel(); jtextfield6 = new javax.swing.jtextfield(); jbutton1 = new javax.swing.jbutton(); jbutton2 = new javax.swing.jbutton(); jbutton3 = new javax.swing.jbutton(); jbutton4 = new javax.swing.jbutton(); jcombobox1 = new javax.swing.jcombobox(); jcombobox2 = new javax.swing.jcombobox(); jlabel7 = new javax.swing.jlabel(); jlabel8 = new javax.swing.jlabel();

setdefaultcloseoperation(javax.swing.windowconstants.exit_on_close); jlabel1.settext("tytu\u0142 ksi\u0105\u017cki"); jtextfield1.setminimumsize(new java.awt.dimension(110, 19)); jlabel2.settext("nazwisko autora ksi\u0105\u017cki"); jlabel3.settext("imi\u0119 autora ksi\u0105\u017cki"); jlabel4.settext("isbn tytu\u0142u"); jlabel5.settext("wydawnictwo"); jlabel6.settext("numer ksi\u0105\u017cki"); jbutton1.settext("zapisz tytu\u0142"); jbutton1.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(java.awt.event.actionevent evt) { jbutton1actionperformed(evt); );

jbutton2.settext("zapisz ksi\u0105\u017ck\u0119"); jbutton2.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(java.awt.event.actionevent evt) { jbutton2actionperformed(evt); ); jbutton3.settext("wy\u015bwietl tytu\u0142y"); jbutton3.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(java.awt.event.actionevent evt) { jbutton3actionperformed(evt); ); jbutton4.settext("wy\u015bwietl ksi\u0105\u017cki"); jbutton4.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(java.awt.event.actionevent evt) { jbutton4actionperformed(evt); );

jcombobox1.setmodel(new javax.swing.defaultcomboboxmodel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" )); jcombobox2.setmodel(new javax.swing.defaultcomboboxmodel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" )); jlabel7.settext("tytu\u0142y ksi\u0105\u017cek"); jlabel8.settext("ksi\u0105\u017cki"); org.jdesktop.layout.grouplayout layout = new org.jdesktop.layout.grouplayout(getcontentpane()); getcontentpane().setlayout(layout); layout.sethorizontalgroup( layout.createparallelgroup(org.jdesktop.layout.grouplayout.leading).add(layout.createsequentialgroup().addcontainergap().add(layout.createparallelgroup( org.jdesktop.layout.grouplayout.leading).add(layout.createsequentialgroup().add(layout.createparallelgroup( org.jdesktop.layout.grouplayout.leading)

.add(jlabel2).add(jlabel1).add(jlabel4).add(jlabel3).add(jlabel5).add(jlabel6)).addpreferredgap(org.jdesktop.layout.layoutstyle.related).add(layout.createparallelgroup( org.jdesktop.layout.grouplayout.leading, false).add(jtextfield6).add(jtextfield5).add(jtextfield3).add(jtextfield2).add(jtextfield1, org.jdesktop.layout.grouplayout.default_size, 182, Short.MAX_VALUE).add(jTextField4))).add(layout.createSequentialGroup().add(jButton1).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(jButton2).

.addpreferredgap(org.jdesktop.layout.layoutstyle.related).add(jbutton3).addpreferredgap(org.jdesktop.layout.layoutstyle.related).add(jbutton4)).add(layout.createsequentialgroup().add(layout.createparallelgroup( org.jdesktop.layout.grouplayout.leading).add(jlabel7).add(jlabel8)).add(48, 48, 48).add(layout.createParallelGroup( org.jdesktop.layout.grouplayout.leading).add(jcombobox2, org.jdesktop.layout.grouplayout.preferred_size, org.jdesktop.layout.grouplayout.default_size, org.jdesktop.layout.grouplayout.preferred_size).add(jcombobox1, org.jdesktop.layout.grouplayout.preferred_size, org.jdesktop.layout.grouplayout.default_size, org.jdesktop.layout.grouplayout.preferred_size)))).addcontainergap()) );

layout.setverticalgroup( layout.createparallelgroup(org.jdesktop.layout.grouplayout.leading).add(layout.createsequentialgroup().addcontainergap().add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.baseline).add(jlabel1).add(jtextfield1, org.jdesktop.layout.grouplayout.preferred_size, org.jdesktop.layout.grouplayout.default_size, org.jdesktop.layout.grouplayout.preferred_size)).addpreferredgap(org.jdesktop.layout.layoutstyle.related).add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.baseline) add(jlabel2).add(jtextfield2, org.jdesktop.layout.grouplayout.preferred_size, org.jdesktop.layout.grouplayout.default_size, org.jdesktop.layout.grouplayout.preferred_size)).addpreferredgap(org.jdesktop.layout.layoutstyle.related).add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.baseline).add(jtextfield3, org.jdesktop.layout.grouplayout.preferred_size, org.jdesktop.layout.grouplayout.default_size, org.jdesktop.layout.grouplayout.preferred_size)

.add(jlabel3)).addpreferredgap(org.jdesktop.layout.layoutstyle.related).add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.baseline).add(jtextfield4, org.jdesktop.layout.grouplayout.preferred_size, org.jdesktop.layout.grouplayout.default_size, org.jdesktop.layout.grouplayout.preferred_size).add(jlabel4)).addpreferredgap(org.jdesktop.layout.layoutstyle.related).add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.baseline).add(jlabel5).add(jtextfield5, org.jdesktop.layout.grouplayout.preferred_size, org.jdesktop.layout.grouplayout.default_size, org.jdesktop.layout.grouplayout.preferred_size)).addpreferredgap(org.jdesktop.layout.layoutstyle.related).add(layout.createparallelgroup(org.jdesktop.layout.grouplayout.baseline).add(jlabel6).add(jtextfield6, org.jdesktop.layout.grouplayout.preferred_size, org.jdesktop.layout.grouplayout.default_size, org.jdesktop.layout.grouplayout.preferred_size)).add(16, 16, 16).add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)

.add(jbutton1).add(jbutton2).add(jbutton3).add(jbutton4)).add(26, 26, 26).add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(jLabel7).add(jComboBox1, org.jdesktop.layout.grouplayout.preferred_size, org.jdesktop.layout.grouplayout.default_size, org.jdesktop.layout.grouplayout.preferred_size)).addpreferredgap( org.jdesktop.layout.layoutstyle.related, 54, Short.MAX_VALUE).add(layout.createParallelGroup( org.jdesktop.layout.grouplayout.trailing).add(jcombobox2, org.jdesktop.layout.grouplayout.preferred_size, org.jdesktop.layout.grouplayout.default_size, org.jdesktop.layout.grouplayout.preferred_size).add(jlabel8)).add(90, 90, 90)) ); pack(); // </editor-fold>

// Variables declaration - do not modify private javax.swing.jbutton jbutton1; private javax.swing.jbutton jbutton2; private javax.swing.jbutton jbutton3; private javax.swing.jbutton jbutton4; private javax.swing.jcombobox jcombobox1; private javax.swing.jcombobox jcombobox2; private javax.swing.jlabel jlabel1; private javax.swing.jlabel jlabel2; private javax.swing.jlabel jlabel3; private javax.swing.jlabel jlabel4; private javax.swing.jlabel jlabel5; private javax.swing.jlabel jlabel6; private javax.swing.jlabel jlabel7; private javax.swing.jlabel jlabel8; private javax.swing.jtextfield jtextfield1; private javax.swing.jtextfield jtextfield2; private javax.swing.jtextfield jtextfield3; private javax.swing.jtextfield jtextfield4; private javax.swing.jtextfield jtextfield5; private javax.swing.jtextfield jtextfield6; // End of variables declaration

Przykład wywołania interfejsu użytkownika