PROGRAMOWANIE W JAVA Informatyka Stosowana – ROK II / III Laboratoria mgr inż. Krzysztof Bzowski.

Slides:



Advertisements
Podobne prezentacje
Wstęp do strumieni danych
Advertisements

Programowanie wizualne
Mgr inż.Marcin Borkowski Podstawy Java Krótkie wprowadzenie dla studentów Wyższej Szkoły Ekologii i Zarządzania
Programowanie obiektowe
Programowanie obiektowe
Programowanie obiektowe PO PO - LAB 4 Wojciech Pieprzyca.
Wzorce.
Dziedziczenie. Po co nam dziedziczenie? class osoba { char * imie, char * imie, * nazwisko; * nazwisko;public: void wypisz_imie(); void wypisz_imie();
Sposoby implementacji asocjacji
Implementacja ekstensji klasy
Nguyen Hung Son Uniwersytet Warszawski
Programowanie obiektowe w Javie
RMI I RMI-IIOP Wprowadzenie Co to jest RMI?
Czytanie, pisanie i rysowanie (czyli klasa I szkoły podstawowej)

Obsługa systemu wejścia-wyjścia
Język Java Wielowątkowość.
Projektowanie warstwy serwera DisplayTag. Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu.
Hibernate relacje.
Techniki i języki programowania
przygotował Michał Wdaniec
Serializacja Serializacja pozwala zamienić obiekt na sekwencję bajtów, w sposób umożliwiający później wierne odtworzenie jego zawartości Inna nazwa to.
Test Doubles Adam Gabryś , v1.1,
Programowanie urządzeń mobilnych – wykład IV
Java 3 MPDI Programowanie obiektowe W7. import java.io.*; public class X { // kontrukcja throws – określenie jakie wyjątki może dana metoda // sygnalizować
Tadeusz Ziębakowski Zachodniopomorski Uniwersytet Technologiczny.
PIO 3_2, Zofia Kruczkiewicz1 Wykład 3 – część druga Iteracyjno-rozwojowy cykl oprogramowania 3.
W większości języków programowania biblioteki wejścia/wyjścia ukrywają szczegóły obsługi poszczególnych mediów pod abstrakcją strumienia (ang. stream).
Tworzenie aplikacji mobilnych
Obsługa systemu wejścia-wyjścia
Programowanie obiektowe – zastosowanie języka Java SE
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
Java – coś na temat Klas Piotr Rosik
Inicjalizacja i sprzątanie
Seminarium problemowe
PIO 2_2, Zofia Kruczkiewicz1 Wykład 2 – część druga Iteracyjno-rozwojowy cykl oprogramowania 2.
MICROSOFT Access TWORZENIE MAKR
Zawansowane techniki programistyczne
1 Strumienie Hierarchie klas strumieniowych, strumienie bajtowe - klasy InputStream i OutputStream i ich metody, klasa File, strumienie plikowe, strumienie.
OCPJP Inner classes.
Zaawansowane komponenty graficzne Swing
BJUG_1: Typy Generyczne, Kolekcje
Wstęp - Prosta aplikacja internetowa w technologii Java EE 5 Programowanie komponentowe 1.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Informatyka Stosowana – ROK II / III
PROGRAMOWANIE W JAVA Informatyka Stosowana – ROK II / III Laboratoria mgr inż. Krzysztof Bzowski.
PROGRAMOWANIE W JAVA Informatyka Stosowana – ROK II Laboratoria Bazy danych w JAVA II mgr inż. Krzysztof Bzowski.
PIO 3_2, Zofia Kruczkiewicz1 Wykład 3 – część druga Iteracyjno-rozwojowy cykl oprogramowania 3.
PROGRAMOWANIE W JAVA Informatyka Stosowana – ROK II / III Laboratoria mgr inż. Krzysztof Bzowski.
Object-relational mapping (aka O/RM, ORM, and O/R mapping)
Kolekcje (3) Zbiory. Porównywanie i porządkowanie elementów kolekcji. (c) Krzysztof Barteczko 2014.
Przewodnik Użycie funkcji historii wyszukiwania w interfejsach EBSCO
Implementacja asocjacji (z atrybutami i bez) przy użyciu: referencji (kolekcji referencji) tablic asocjacyjnych przygotował: Kamil Kowalczyk.
Strumienie w języku Java Bartosz Walter InMoST Wielkopolska sieć współpracy w zakresie innowacyjnych metod wytwarzania oprogramowania Termin realizacji:
InMoST, Java – przykładowa aplikacja Bartosz.Michalik
Programowanie Obiektowe – Wykład 6
Strumienie, Wczytywanie, Zapisywanie, Operacje na plikach
Typy wyliczeniowe, kolekcje
Przeglądarka stron WWW
Wątki, programowanie współbieżne
(według:
(c) Krzysztof Barteczko 2014
Programowanie obiektowe II
Programowanie Obiektowe – Wykład 2
Klasy wewnętrzne. Praktyka użycia interfejsów i klas wewnętrznych
Programowanie obiektowe – zastosowanie języka Java SE
Wstęp - Prosta aplikacja internetowa w technologii Java EE 5
PGO Interfejsy Michail Mokkas.
PGO Porównywanie obiektów
Tworzenie wątków w Javie
Zapis prezentacji:

PROGRAMOWANIE W JAVA Informatyka Stosowana – ROK II / III Laboratoria mgr inż. Krzysztof Bzowski

Prosta plikowa baza danych Stworzyć plikową bazę danych umożliwiającą dodawanie, edycję i usuwanie rekordów

Zadania: Zaimplementować klasę Osoba z polami: –String name; –float mark; Klasa Osoba powinna implementować interfejs Serializable Stworzyć jedną lub więcej formatek z komponentami jTable (lista), jButton (operacje), jComboBox (wybór oceny) i jTextField (imie) Stworzyć menu za pomocą JMenu i jMenuItem Do wypelnienia jComboBox dostępnymi ocenami należy użyć modelu, np. DefaultComboBoxModel(String[]) Edycja rekordów w bazie może być zrealizowana w dodatkowym oknie (jDialog) Stworzyć listę osób z wykorzystaniem klasy List<> Aby wyświetlić listę w jTable należy stworzyć model dziedziczący po klasie AbstractTableModel Model tabeli powinien przechowywać referencję do listy i nagłówki kolumn, konieczna jest implementacja metod: getRowCount, getColumnCount, getValueAt(int row, int col), getColumnName(int col) Funckja setModel ustawi model dla komponentu jTable Zainicjować model listą osób Po zmianie na liście (dodanie, usuniecie, edycja) należy wywołać metodę fireTableDataChanged Aby pobrać aktualnie kliknięty numer wiersza w komponencie jTable należy użyć getSelectedRow()

Sortowanie I Do nagłówków kolumn komponentu jTable dodać MouseListener pozwalający na sortowanie wartości, po kliknięciu na nazwę kolumny // metoda obsluguje klikanie na naglowku kolumny private void addHeaderListener() { jTable1.getTableHeader().addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent e) { // pobierz numer kolumny int col = jTable1.columnAtPoint(e.getPoint()); // uruchom funkcje sortujaca z modelu model.sortByColumn(col); model.fireTableDataChanged(); } }); }

Sortowanie II Metoda sortByColumn wykorzystuje funkcję sortującą: Collections.sort(data, comparator); Zaimplementuj dwa komparatory – do sortowania po imieniu i ocenie public class NameComparator implements Comparator public int compare(Osoba o1, Osoba o2) { return o1.imie.compareTo(o2.imie); } class OcenaComparator implements Comparator public int compare(Osoba o1, Osoba o2) { return o1.ocena < o2.ocena ? -1 : o1.ocena == o2.ocena ? 0 : 1; }

Serializacja Zapisać i odczytać listę z pliku za pomocą serializacji public static void saveToFile(List osoby, String filePath) { try { FileOutputStream fileOut = new FileOutputStream(filePath); ObjectOutputStream out = new ObjectOutputStream(fileOut); out.writeObject(osoby); out.close(); fileOut.close(); } catch (Exception ex) { } public static List loadFromFile(String filePath) { List osoby = new ArrayList<>(); try { FileInputStream fileIn = new FileInputStream(filePath); ObjectInputStream in = new ObjectInputStream(fileIn); osoby = (List ) in.readObject(); in.close(); fileIn.close(); } catch (Exception ex) { return osoby; } return osoby;

Serializacja II Wybór pliku do zapisu zrealizować poprzez komponent jFileChoser JFileChooser fileChooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("Bazy danych", "db"); fileChooser.addChoosableFileFilter(filter); fileChooser.setFileFilter(filter); int returnValue = fileChooser.showSaveDialog(this); //int returnValue = fileChooser.showOpenDialog(this); // odczyt if (returnValue == JFileChooser.APPROVE_OPTION) { Osoba.saveToFile(model.getData(), fileChooser.getSelectedFile().getAbsolutePath()); //listaOsob = Osoba.loadFromFile(fileChooser.getSelectedFile().getAbsolutePath()); // odczyt //model.setData(listaOsob); // odczyt //model.fireTableDataChanged(); // odczyt }