Podstawy Języka Java
Wprowadzenie do AWT AWT Abstract Window Toolkit, biblioteka wykorzystywana do budowy graficznych interfejsów użytkownika w Javie AWT do obsługi elementów interfejsu użytkownika wykorzystuje natywne GUI. Wygląd GUI w tym przypadku jest analogiczny do GUI systemu operacyjnego, na którym uruchamiana jest aplikacja. Jest to tzw. ciężki typ kontrolek. Jego składniki używają zasobów systemu operacyjnego. Pakiet java.awt udostępnia klasy dla interfejsów AWT, takich jak TextField, Label, TextArea, RadioButton, CheckBox, Choice, List itp.
Podstawowe komponenty pakietu java.awt Rysunek: http://thatsjavainfo.com
title Kontener Kontener jest składnikiem AWT, który może zawierać inne komponenty, takie jak przyciski, pola tekstowe, etykiety itp. Klasy, które rozszerzają klasę kontenera, są znane jako kontener, taki jak ramka, okno dialogowe i panel. Okno Okno to kontener, który nie ma granic i pasków menu. Musisz użyć ramki, okna dialogowego lub innego okna do utworzenia okna. Panel Panel to kontener, który nie zawiera paska tytułu i pasków menu. Może mieć inne komponenty, takie jak przycisk, pole tekstowe itp. Ramka Ramka jest kontenerem zawierającym pasek tytułu i może zawierać paski menu. Może mieć inne komponenty, takie jak przycisk, pole tekstowe itp.
Użyteczne metody klasy Component add(component c) - wstawia komponent do tego komponentu setsize(int width,int height) - ustawia rozmiar (szerokość i wysokość) komponentu settitle - nadaje ramce tytuł setlocation - ustala położenie ramki na ekranie setlayout(layoutmanager m) - definiuje menedżera układu dla komponentu setvisible(boolean status)- zmienia widoczność komponentu, domyślnie false getbackground/setbackground getforeground/setforeground - Zmiana domyślnego koloru przedniego planu Kolor jest dziedziczony przez obiekt Graphics dla komponentu getfont/setfont - Ustawia/zwraca aktualny kolor czcionki Kolor jest dziedziczony przez obiekt Graphics dla komponentu paint - Wołana za każdym razem, kiedy użytkownik wywołuje metodę repaint lub następuje zmiana komponentu (przesunięcie okienka, przesłonięcie, etc... )
Jak stworzyć prostą ramkę - Przykład Aby stworzyć prosty przykład, potrzebujemy ramki. Istnieją dwa sposoby tworzenia ramki w AWT. Przez rozszerzenie klasy Frame (dziedziczenie) Tworząc obiekt klasy Frame (asocjacja) import java.awt.button; import java.awt.frame; class First extends Frame { First() { setvisible(true); } public static void main(string args[]) { First f = new First(); } } Zadanie 1. Korzystając z odpowiednich metod: nadaj ramce tytuł Moja pierwsza ramka ustal rozmiar na 800x300 ramka ma się znajdować mniej więcej na środku ekranu zmień kolor tła w ramce na np. czerwony
Java Swing Java Swing jest częścią Java Foundation Classes (JFC), używanego do tworzenia aplikacji opartych na oknach. Jest zbudowany na interfejsie API AWT (Abstract Windowing Toolkit) i całkowicie napisany w języku Java. Swing zapewnia: Zbiór kontrolek do tworzenia zaawansowanych GUI: tabele, listy, drzewa, taby, etc... rozbudowaną funkcjonalność do pracy z tekstem wsparcie dla wielonarodowości (języki, odpowiedni układ elementów) look & feels Java 2D (Swing został zbudowany na tym pakiecie) Mechanizm do przywracania i ponawiania operacji (undo & redo) wsparcie dla osób niepełnosprawnych (lupa, syntezator, wyświetlanie informacji na wyświetlaczu brile a) transfer danych: operacja wklej, wytnij, drag&drop W przeciwieństwie do AWT, Java Swing zapewnia niezależne od platformy i lekkie komponenty.
Kontrolki w Swing JButton JCheckBox JComboBox JList JMenu JRadioButton JSlider JSpinner JTextField JPasswordField Kontrolki z formatowaniem JColorChooser JEditorPane JTextPane JFileChooser JTable JTextArea JTree
Kontrolki do wyświetlania informacji i kontrolki najwyższego poziomu JLabel JSplitPane JProgressBar JTabbedPane JSeparator JToolBar JToolTip JInternalFrame JPanel JLayeredPane JScrollPane RootPane
Hierarchia klas w java Swing
Różnice pomiędzy AWT i Swing Java AWT Komponenty AWT są zależne od platformy Elementy AWT są ciężkie AWT nie ma mechanizmu look&feel AWT zapewnia mniej komponentów niż Swing Java Swing Komponenty Java swing są niezależne od platformy Elementy Swing są lekkie Swing posiada mechanizm look &feel Swing zapewnia mocniejsze komponenty, takie jak: tables, lists, scrollpanes, colorchooser, tabbedpane itp.
import j a v a x. swing. ; p u b l i c c l a s s P r z y k l a d 2 extends JFrame { p u b l i c P r z y k l a d 2 ( ) { i n i t ( ) ; } p r i v a t e void i n i t ( ) { } s e t T i t l e ( Ramka 1 ) ; s e t S i z e (500, 5 0 0 ) ; s e t L o c a t i o n (100, 5 0 ) ; s e t L a y o u t ( n u l l ) ; s e t V i s i b l e ( true ) ; s e t D e f a u l t C l o s e O p e r a t i o n ( JFrame. EXIT ON CLOSE ) ; } p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { new P r z y k l a d 2 ( ) ; }
Zadania Zadanie 2. Stwórz ramkę o nazwie Ramka 1. Ustal rozmiar ramki na 500x500. Niech ramka nie pojawia się w domyślnym miejscu, ustal jej położenie za pomocą metody setlocation(). W ramce mają się znajdować: Labelka o nazwie lab1 (JLabel) Pole tekstowe (JTextField) przycisk (JButton) o nazwie Kliknij. zmień domyślną ikonę (w lewym górnym rogu) na jakąkolwiek. Skorzystaj z metody: seticonimage(toolkit.getdefaulttoolkit().getimage( nazwapliku )); Uwaga: Ściągnięta z internetu ikona powinna się znaleźć w tym samym folderze. Ikonę możesz pobrać np. https://pl.icons8.com/icon/pack/animals/color Przykładowy wygląd ramki:
Zadania Zadanie 3. Popraw działanie poprzedniego zadania w taki sposób, aby Twoja ramka była wycentrowana bez względu na jej rozmiar czy rozdzielczość ekranu. W tym celu należy: 1 Pobrać rozmiar ekranu: np. Toolkit.getDefaultToolkit().getScreenSize().width; przypisać do zmiennej np. int szer 2 ustalić wielkość okna za pomocą metody: setsize(szer/2, wys/2); 3 Za pomocą metody setlocation(); umieść okno na środku. Zwróć uwagę, że jeśli zmienisz rozmiar okna to już nie będzie się ono znajdowało na środku. Popraw to. Wsk. Należy ustawić Lokację w inny sposób. Zadanie 4. Stwórz ramkę z jednym przyciskiem o nazwie np. Czerwony. Po naciśnięciu przycisku kolor tła ma się zmienić na czerwony.
Zadania Zadanie 5. Stwórz ramkę, w której przeliczane są stopnie w skali Celcjusza (podane przez użytkownika) na stopnie w skali Fahrenheita. Przykładowy wygląd ramki: