nazwisko_.setfont(new Font("Times New Roman", Font.BOLD, 12));

Podobne dokumenty
Java - interfejs graficzny

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

Podstawy Języka Java

Programowanie graficznych interfejsów użytkownika

Programowanie zdarzeniowe

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

Kontenery i komponenty graficzne

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

Programowanie obiektowe

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

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

Programowanie w języku JAVA. Wykład IV Swing - GUI

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

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

Język JAVA podstawy. Wykład 5, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

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

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

Tworzenie elementów graficznych

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

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

Aplikacja wielowątkowa prosty komunikator

9. Swing wprowadzenie

Programowanie w języku Java

Wykład 3: Projektowanie graficznych interfejsów użytkownika w Java

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

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

Programowanie w języku Java WYKŁAD

SWING. dr Jarosław Skaruz

Aplikacje w Javie wykład 12 Programowanie GUI

Java biblioteka Swing

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

Aplikacja wielow tkowa prosty komunikator

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

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

Tworzenie projektu zawierającego aplet w środowisku NetBeans. lab1. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

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

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

Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science

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

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

Programowanie obiektowe

Bartosz Jachnik - Kino

Kontynuacja wprowadzenia do SWING. Przykłady implementacji wybranych komponentów

Henryk Budzisz. materiały przygotowane w ramach projektu ZPORR nr POKL /08-00

Języki Programowania II Wykład 7. Java Swing

Grafika i komunikacja człowiek komputer Laboratorium. Część 1: Wstęp do grafiki

Programowanie Obiektowe Java

Interfejs graczny w Javie.

Tworzenie i obsługa graficznego interfejsu uŝytkownika

Iteracyjno-rozwojowy cykl oprogramowania 4

Ćwiczenia 9 - Swing - część 1

Operatory. Składnia. Typy proste. Znaki specjalne

Programowanie w środowisku graficznym- wykład 9 Programowanie GUI cz1

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

Język Java. Rysowanie GUI Określanie wyglądu komponentów

Programowanie Multimediów. Programowanie Multimediów JAVA. grafika w JAVA 2D API [1]

Java 2D. dr Jarosław Skaruz

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

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

Programowanie graficznych interfejsów uŝytkownika

Programowanie zdarzeniowe

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

Zaawansowane aplikacje WWW - laboratorium

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

PROGRAMOWANIE APLIKACJI MULTIMEDIALNYCH

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

Podstawy Swing. Tomasz Borzyszkowski

Swing ćwiczenia 2 opis

Wzorzec projektowy Obserwator idiomatyczne rozwiązanie

Aplikacje w Javie wykład 12 Programowanie GUI

JAVA 2: PROGRAMY Z GRAFICZNYM INTERFEJSEM UŻYTKOWNIKA 1. WSTĘP

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

Programowanie Multimediów. Programowanie Multimediów JAVA. programowanie GUI. (AWT i Swing) [1]

Bezpieczne uruchamianie apletów wg

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Programowanie zdarzeniowe

JAVA Materiały do laboratorium III wersja niezaawansowana Marcin Borkowski WSEiZ czerwiec 2006

Comparable<Klasa_uzytkownika>

Graphic User Interfaces pakiet Swing

Języki i metody programowania Java Lab4 podejście obiektowe, zastosowanie pojemników

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

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

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Programowanie komponentowe

Java Platform Micro Edition

Podstawowe informacje o apletach

Kurs programowania. Wykład 5. Wojciech Macyna. 31 marzec 2016

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Język JAVA podstawy. Wykład 5, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Laboratorium z informatyki sem. III/ćw. 2 Wydział Transportu PW /19 MATERIAŁY POMOCNICZE DO ĆWICZENIA 2

Programowanie Obiektowe Java

W porównaniu do tekstowego interfejsu użytkownika

Rysowanie prostych obiektów graficznych przy użyciu biblioteki AWT (Abstract Window Toolkit)

Programowanie obiektowe

4. W konstruktorze klasy Grafika wywołaj metodę określającą rozmiary ramki oraz ustaw kolor tła metodą setbackground():

Programowanie w języku Java

Zaawansowane aplikacje internetowe laboratorium

Kurs programowania aplikacji bazodanowych

Transkrypt:

Przykładowe aplikacje wykorzystujące komponenty AWT i SWING import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; public class przyk { public Component createcomponents() { final JPanel plansza = new JPanel(); JPanel w1=new JPanel(); JPanel w2=new JPanel(); final JTextField textfield = new JTextField(12); final JLabel etykieta = new JLabel(); etykieta.settext("dane osobowe"); etykieta.setfont(new Font("Arial", Font.ITALIC+Font.BOLD, 20)); final JLabel nazwisko_ = new JLabel(); nazwisko_.settext("nazwisko: "); nazwisko_.setfont(new Font("Times New Roman", Font.BOLD, 12));

final JTextField nazwisko = new JTextField(12); plansza.setborder(borderfactory.createemptyborder(10,30,10,30)); w1.setlayout(new BoxLayout(w1, BoxLayout.X_AXIS)); w2.setlayout(new BoxLayout(w2, BoxLayout.X_AXIS)); w1.add(etykieta); w2.add(nazwisko_); w2.add(nazwisko); plansza.add(w1); plansza.add(w2); plansza.setlayout(new BoxLayout(plansza, BoxLayout.Y_AXIS)); return plansza; public static void main(string[] args) { JFrame ramka = new JFrame("Aplikacja ZADANIE"); przyk aplikacja = new przyk(); Component zawartosc = aplikacja.createcomponents(); ramka.getcontentpane().add( zawartosc, BorderLayout.CENTER); //konczy elegancko pracę z aplikacjš ramka.addwindowlistener(new WindowAdapter()

{ public void windowclosing(windowevent e) { System.exit(0); ); ramka.pack(); ramka.setvisible(true); Kod aplikacji do obsługi tablic (w przykładzie tablica 3*3) wykorzystujšcej układacz GridLayout. import javax.swing.*; import java.awt.*; import java.awt.event.*;

import java.io.*; public class przyk { String [][] a={ {"Adam", "Ania", "Asia", {"Siedlce","Warszawa", "Szczecin", {"1000","3000","3500"; public Component createcomponents() { JPanel p2 = new JPanel ( ); p2.setbackground ( Color.red ); p2.setlayout ( new GridLayout ( 3, 3, 10, 10) ); p2.add ( new Button ( a[0][0] ) ); p2.add ( new Button ( a[0][1] ) ); p2.add ( new Button ( a[0][2] ) ); p2.add ( new Button ( a[1][0] ) ); p2.add ( new Button ( a[1][1] ) ); p2.add ( new Button ( a[1][2] ) ); p2.add ( new Button ( a[2][0] ) ); p2.add ( new Button ( a[2][1] ) ); p2.add ( new Button ( a[2][2] ) ); return p2;

public static void main(string[] args) { JFrame ramka = new JFrame("Aplikacja ZADANIE"); przyk aplikacja = new przyk(); Component zawartosc = aplikacja.createcomponents(); ramka.getcontentpane().add( zawartosc, BorderLayout.CENTER); //konczy elegancko pracę z aplikacjš ramka.addwindowlistener(new WindowAdapter() { public void windowclosing(windowevent e) { System.exit(0); ); ramka.pack(); ramka.setvisible(true); Formularz do wprowadzania danych. Formularz pokazany jest na rysunku (W formie aplikacji Java)

import javax.swing.*; import java.awt.*; import java.awt.event.*; public class zadanie

{ public Component createcomponents() { final JPanel plansza = new JPanel(); JPanel w1=new JPanel(); JPanel w2=new JPanel(); JPanel w3=new JPanel(); JPanel w4=new JPanel(); JPanel w5=new JPanel(); JPanel w6=new JPanel(); JPanel w6i=new JPanel(); JPanel w6ii=new JPanel(); JPanel w7=new JPanel(); JPanel w7i=new JPanel(); JPanel w7ii=new JPanel(); JPanel w76=new JPanel(); JButton klawisz = new JButton("Zapisz dane!!!!"); JPanel wa=new JPanel(); final JTextField textfield = new JTextField(12);

final JLabel etykieta = new JLabel(); etykieta.settext("dane osobowe"); etykieta.setfont(new Font("Arial", Font.ITALIC+Font.BOLD, 20)); final JLabel nazwisko_ = new JLabel(); nazwisko_.settext("nazwisko: "); nazwisko_.setfont(new Font("Times New Roman", Font.BOLD, 12)); final JTextField nazwisko = new JTextField(12); final JLabel imie_ = new JLabel(); imie_.settext("imię: "); imie_.setfont(new Font("Times New Roman", Font.BOLD, 12)); final JTextField imie = new JTextField(12); final JLabel adres_ = new JLabel(); adres_.settext("adres: "); adres_.setfont(new Font("Times New Roman", Font.BOLD, 12));

final JTextField adres = new JTextField(12); final JLabel wyplata_ = new JLabel(); wyplata_.settext("do wypłaty:"); wyplata_.setfont(new Font("Times New Roman", Font.BOLD, 12)); final JTextField wyplata = new JTextField(12); final JLabel zaint_ = new JLabel(); zaint_.settext("do wypłaty:"); zaint_.setfont(new Font("Times New Roman", Font.BOLD, 12)); JCheckBox zaint1=new JCheckBox("Polityka");; JCheckBox zaint2=new JCheckBox("Nauka");; JCheckBox zaint3=new JCheckBox("Film");; JCheckBox zaint4=new JCheckBox("Teatr");; JCheckBox zaint5=new JCheckBox("Literatura");; final JLabel pali_ = new JLabel(); pali_.settext("pali?:"); pali_.setfont(new Font("Times New Roman", Font.BOLD, 12));

JRadioButton pali1=new JRadioButton("Palšcy"); JRadioButton pali2=new JRadioButton("Nie Palšcy"); final JTextArea opis = new JTextArea(" "); opis.setfont(new Font("Serif", Font.BOLD, 16)); opis.setlinewrap(true); opis.setwrapstyleword(true); JScrollPane areascrollpane = new JScrollPane(opis); areascrollpane.setverticalscrollbarpolicy(jscrollpane.vertical_scrollbar_always); areascrollpane.setpreferredsize(new Dimension(100, 200)); klawisz.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { klikania."); JOptionPane.showMessageDialog(plansza,"Pozdrowienie podczas );

plansza.setborder(borderfactory.createemptyborder(10,30,10,30)); w1.setlayout(new BoxLayout(w1, BoxLayout.X_AXIS)); w2.setlayout(new BoxLayout(w2, BoxLayout.X_AXIS)); w3.setlayout(new BoxLayout(w3, BoxLayout.X_AXIS)); w4.setlayout(new BoxLayout(w4, BoxLayout.X_AXIS)); w5.setlayout(new BoxLayout(w5, BoxLayout.X_AXIS)); w6.setlayout(new BoxLayout(w6, BoxLayout.X_AXIS)); w6i.setlayout(new BoxLayout(w6I, BoxLayout.X_AXIS)); w6ii.setlayout(new BoxLayout(w6II, BoxLayout.Y_AXIS)); w7.setlayout(new BoxLayout(w7, BoxLayout.X_AXIS)); w7i.setlayout(new BoxLayout(w7I, BoxLayout.X_AXIS)); w7ii.setlayout(new BoxLayout(w7II, BoxLayout.Y_AXIS)); w76.setlayout(new BoxLayout(w76, BoxLayout.X_AXIS)); plansza.setlayout(new BoxLayout(plansza, BoxLayout.Y_AXIS)); w1.add(etykieta); w2.add(nazwisko_); w2.add(nazwisko); w3.add(imie_); w3.add(imie); w4.add(adres_);

w4.add(adres); w5.add(wyplata_); w5.add(wyplata); w6i.add(zaint_); w6ii.add(zaint1); w6ii.add(zaint2); w6ii.add(zaint3); w6ii.add(zaint4); w6ii.add(zaint5); w6.add(w6i); w6.add(w6ii); w7i.add(pali_); w7ii.add(pali1); w7ii.add(pali2); w7.add(w7i); w7.add(w7ii); w76.add(w6); w76.add(w7); plansza.add(w1); plansza.add(w2);

plansza.add(w3); plansza.add(w4); plansza.add(w5); plansza.add(w76); plansza.add(areascrollpane); plansza.add(klawisz); return plansza; public static void main(string[] args) { JFrame ramka = new JFrame("Aplikacja ZADANIE"); zadanie aplikacja = new zadanie(); Component zawartosvcv = aplikacja.createcomponents(); ramka.getcontentpane().add( zawartosvcv, BorderLayout.CENTER); ramka.addwindowlistener(new WindowAdapter() { public void windowclosing(windowevent e) { System.exit(0);

); ramka.pack(); ramka.setvisible(true); import javax.swing.*; //This is the final package name. //import com.sun.java.swing.*; //Used by JDK 1.2 Beta 4 and all //Swing releases before Swing 1.1 Beta 3. import java.awt.*; import java.awt.event.*; public class s1p{ /* stałe i zmienne uczestniczšce w wywietlaniu */ private static String etykietaprefix = "Liczba kliknięć klawisza: "; private int liczbakliknieqcv = 0; public Component createcomponents() { /* elementy pokazywane na ekranie plansza, a na niej klawisz, a pod nim etykieta */

final JLabel etykieta = new JLabel(etykietaPrefix + "0 "); JButton klawisz = new JButton("Jam jest Swingowy klawisz!"); // JLabel, JButton to "terminalne" komponenty GUI, inne to: JList, JComboBox, JTextField, JMenu, JCheckboxMenuItem, JRadioButtonMenuItem, JAbstractButton, JMenuBar, JPopupMenu, JSeparator, JSlider, JPasswordField, JColorChooser, JFileChooser, JTable, JText, JTree JPanel plansza = new JPanel(); // JPanel - komponent poziomu poredniego GUI, inne to JScrollPane, JTabbedPane, JSplitPane, JToolBar, JInternalFrame, JLayeredPane, JDesktopPane, JProgressBar, /* działanie elementów aktywnych - reakcje na zdarzenia */ // Alt-I będzie równoznaczne z kliknięciem klawisza klawisz.setmnemonic(keyevent.vk_i); // reakcja klawisza na kliknięcie myszy /* klawisz.addactionlistener(new ActionListener() { ); public void actionperformed(actionevent e) { liczbakliknieqcv++; etykieta.settext(etykietaprefix + liczbakliknieqcv); Inni podsłuchiwacze zdarzeń to: Act that results in the event Listener type User clicks a button, presses Return while typing in a text field, or chooses a menu item

ActionListener User closes a frame (main window) WindowListener User presses a mouse button while the cursor is over a component MouseListener User moves the mouse over a component Component becomes visible Component gets the keyboard focus MouseMotionListener ComponentListener FocusListener Table or list selection changes ListSelectionListener Elementy potrzebne dla podsłuchiwacza podłuchiwacza Deklaracja public class MyClass implements ActionListener { Rejestracja : somecomponent.addactionlistener(instanceofmyclass); Implementacja metody w interfejsie podsłuchiwacza public void actionperformed(actionevent e) {...//code that reacts to the action...

*/ // objanienie klawisza przy najechaniu nań - niepotrzebne klawisz.settooltiptext("kliknięcie tego klawisza jest zliczne poniżej."); // a teraz instrukcja niepotrzebna sama w sobie, ale wspierajšca oprogramoweanie dla niepełnosprawnych (zamina tekstu na dżwięki, głos) // mówi, że etykieta opisuje istotę działania komponentu, jakim jest klawisz. etykieta.setlabelfor(klawisz); // brzeg dla planszy plansza.setborder(borderfactory.createemptyborder( 30, //top 30, //left 10, //bottom 30) //right ); /* ułożenie elementów na planszy */ plansza.setlayout(new GridLayout(0, 1)); /* jeden pod drugim */ // możliwe Layouty to: BorderLayout, BoxLayout, FlowLayout, GridBagLayout, GridLayout plansza.add(klawisz);

plansza.add(etykieta); return plansza; public static void main(string[] args) { // główny program // wyglšd ekranu try { UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName()); catch (Exception e) { //główne okno JFrame ramka = new JFrame("Aplikacja swingowa"); // JFrame - komponent szczytowy GUI - inne to JDialog, JApplet // dodaj zawartoć wygenerowanš przez ten program s1p aplikacja = new s1p(); Component zawartosvcv = aplikacja.createcomponents(); ramka.getcontentpane().add( zawartosvcv, BorderLayout.CENTER); //Zakończenie kreowania ramki i pokazanie jej

// reakcja ramki na nacinięcie krzyżyka ramka.addwindowlistener(new WindowAdapter() { ); public void windowclosing(windowevent e) { System.exit(0); ramka.pack(); // pokazanie ramki ramka.setvisible(true); import javax.swing.*; //This is the final package name. //import com.sun.java.swing.*; //Used by JDK 1.2 Beta 4 and all //Swing releases before Swing 1.1 Beta 3. import java.awt.*; import java.awt.event.*; import javax.swing.table.* ;

public class s12p_table{ public Component createcomponents() { /* elementy pokazywane na ekranie plansza, a na niej tablica */ MojModelTablicy mojmodel = new MojModelTablicy (); JTable tablica = new JTable(mojModel); tablica.setpreferredscrollableviewportsize( new Dimension(500, 70)); //Create the scroll pane and add the table to it. JScrollPane skrolowanaplansza = new JScrollPane(tablica); JPanel plansza = new JPanel(); // brzeg dla planszy plansza.setborder(borderfactory.createemptyborder( 30, //top

30, //left 10, //bottom 30) //right ); /* ułożenie elementów na planszy */ plansza.setlayout(new GridLayout(0, 1)); /* jeden pod drugim */ // możliwe Layouty to: BorderLayout, BoxLayout, FlowLayout, GridBagLayout, GridLayout plansza.add(skrolowanaplansza); return plansza; // klasy pomocnicze class MojModelTablicy extends AbstractTableModel { /* Tablica z danymi */ final Object[][] zawartosctablicy = { {"Mary", "Campione", "Snowboarding", new Integer(5), new Boolean(false), {"Alison", "Huml", "Rowing", new Integer(3), new Boolean(true), {"Kathy", "Walrath",

"Chasing toddlers", new Integer(2), new Boolean(false), {"Mark", "Andrews", "Speed reading", new Integer(20), new Boolean(true), {"Angela", "Lih", "Teaching high school", new Integer(4), new Boolean(false) ; final String[] nazwykolumn= {"Imię", "Nazwisko", "Sport", "Wiek", "Normalnoć"; public int getcolumncount() { return nazwykolumn.length; public int getrowcount() { return zawartosctablicy.length;

public String getcolumnname(int col) { return nazwykolumn[col]; public Object getvalueat(int row, int col) { return zawartosctablicy[row][col]; public Class getcolumnclass(int c) { return getvalueat(0, c).getclass(); /* * Don't need to implement this method unless your table's * editable. */ public boolean iscelleditable(int row, int col) { //Note that the data/cell address is constant, //no matter where the cell appears onscreen. if (col < 2) {

return false; else { return true; /* * Don't need to implement this method unless your table's * data can change. */ public void setvalueat(object value, int row, int col) { //debugging code - np. pokazanie starej zawartoœci tablicy na stdout //ugly special handling of Integers - dla Java 1.1 i 1.2,- dla Java1.3 niepotrzebne zawartosctablicy[row][col] = value; firetablecellupdated(row, col); //debugging code - np. pokazywanie nowej zawartoci na stdout // koniec klas pomocniczych public static void main(string[] args)

{ // główny program // wyglšd ekranu try { UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName()); catch (Exception e) { //główne okno JFrame ramka = new JFrame("Aplikacja swingowa"); // JFrame - komponent szczytowy GUI - inne to JDialog, JApplet // dodaj zawartoć wygenerowanš przez ten program s12p_table aplikacja = new s12p_table(); Component zawartosvcv = aplikacja.createcomponents(); ramka.getcontentpane().add( zawartosvcv, BorderLayout.CENTER); //Zakończenie kreowania ramki i pokazanie jej // reakcja ramki na nacinięcie krzyżyka ramka.addwindowlistener(new WindowAdapter() { public void windowclosing(windowevent e) { System.exit(0);

); ramka.pack(); // pokazanie ramki ramka.setvisible(true); javax.swing.*; //This is the final package name. import //import com.sun.java.swing.*; //Used by JDK 1.2 Beta 4 and all //Swing releases before Swing 1.1 Beta 3. import java.awt.*; import java.io.*; import java.awt.event.*; public class s13p_pliki{ /* stałe i zmienne uczestniczšce w wywietlaniu */ private int liczbakliknieqcv = 0;

public Component createcomponents() { /* elementy pokazywane na ekranie */ plansza, a na niej klawisz, a pod nim etykieta final JLabel etykieta = new JLabel("Nie otworzono jeszcze pliku " + "0 "); JButton klawisz = new JButton("Kliknij, by otworzyć jaki wybrany plik!"); final JFileChooser wybovrpliku = new JFileChooser(); // JLabel, JButton to "terminalne" komponenty GUI, inne to: JList, JComboBox, JTextField, JMenu, JCheckboxMenuItem, JRadioButtonMenuItem, JAbstractButton, JMenuBar, JPopupMenu, JSeparator, JSlider, JPasswordField, JColorChooser, JFileChooser, JTable, JText, JTree final JPanel plansza = new JPanel(); // JPanel - komponent poziomu poœredniego GUI, inne to JScrollPane, JTabbedPane, JSplitPane, JToolBar, JInternalFrame, JLayeredPane, JDesktopPane, JProgressBar, /* działanie elementów aktywnych - reakcje na zdarzenia */ // Alt-I będzie równoznaczne z kliknięciem klawisza klawisz.setmnemonic(keyevent.vk_i); // reakcja klawisza na kliknięcie myszy klawisz.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { liczbakliknieqcv++;

int returnval = wybovrpliku.showopendialog(plansza); if (returnval == JFileChooser.APPROVE_OPTION) { File plik = wybovrpliku.getselectedfile(); //this is where a real application would open the file. etykieta.settext("otwieram: " + plik.getname() + ";"+plik.getabsolutepath() ); else { etykieta.settext("użytkownik nie chce otwierać - klik"+liczbakliknieqcv ); ); // objanienie klawisza przy najechaniu nań - niepotrzebne klawisz.settooltiptext("kliknięcie tego klawisza jest zliczne poniżej."); // a teraz instrukcja niepotrzebna sama w sobie, ale wspierajšca oprogramoweanie dla niepełnosprawnych (zamina tekstu na dżwięki, głos) // mówi, że etykieta opisuje istotę działania komponentu, jakim jest klawisz. etykieta.setlabelfor(klawisz); // brzeg dla planszy plansza.setborder(borderfactory.createemptyborder(

30, //top 30, //left 10, //bottom 30) //right ); /* ułożenie elementów na planszy */ plansza.setlayout(new GridLayout(0, 1)); /* jeden pod drugim */ // możliwe Layouty to: BorderLayout, BoxLayout, FlowLayout, GridBagLayout, GridLayout plansza.add(klawisz); plansza.add(etykieta); return plansza; public static void main(string[] args) { // główny program // wyglšd ekranu try { UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName()); catch (Exception e) {

//główne okno JFrame ramka = new JFrame("Aplikacja swingowa"); // JFrame - komponent szczytowy GUI - inne to JDialog, JApplet // dodaj zawartoć wygenerowanš przez ten program s13p_pliki aplikacja = new s13p_pliki(); Component zawartosvcv = aplikacja.createcomponents(); ramka.getcontentpane().add( zawartosvcv, BorderLayout.CENTER); //Zakończenie kreowania ramki i pokazanie jej // reakcja ramki na nacinięcie krzyżyka ramka.addwindowlistener(new WindowAdapter() { ); public void windowclosing(windowevent e) { System.exit(0); ramka.pack(); // pokazanie ramki ramka.setvisible(true);

import javax.swing.*; //This is the final package name. //import com.sun.java.swing.*; //Used by JDK 1.2 Beta 4 and all //Swing releases before Swing 1.1 Beta 3. import java.awt.*; import java.awt.event.*; import javax.swing.event.*;

public class s14p_kolory{ /* stałe i zmienne uczestniczšce w wywietlaniu */ public Component createcomponents() { /* elementy pokazywane na ekranie plansza, a na niej kolory, a nad tym etykieta */ final JLabel etykieta = new JLabel("Dobieranie kolorów "); etykieta.setforeground(color.yellow); final JColorChooser wybovrkoloru = new JColorChooser(etykieta.getForeground()); // JLabel, JButton to "terminalne" komponenty GUI, inne to: JList, JComboBox, JTextField, JMenu, JCheckboxMenuItem, JRadioButtonMenuItem, JAbstractButton, JMenuBar, JPopupMenu, JSeparator, JSlider, JPasswordField, JColorChooser, JFileChooser, JTable, JText, JTree final JPanel plansza = new JPanel(); // JPanel - komponent poziomu poredniego GUI, inne to JScrollPane, JTabbedPane, JSplitPane, JToolBar, JInternalFrame, JLayeredPane, JDesktopPane, JProgressBar, /* działanie elementów aktywnych - reakcje na zdarzenia */ wybovrkoloru.getselectionmodel().addchangelistener(

new ChangeListener() { public void statechanged(changeevent e) { Color newcolor = wybovrkoloru.getcolor(); etykieta.setforeground(newcolor); ); // brzeg dla planszy plansza.setborder(borderfactory.createemptyborder( 30, //top 30, //left 10, //bottom 30) //right ); /* ułożenie elementów na planszy */ plansza.setlayout(new BoxLayout(plansza, BoxLayout.Y_AXIS)); // możliwe Layouty to: BorderLayout, BoxLayout, FlowLayout, GridBagLayout, GridLayout

plansza.add(etykieta); plansza.add(wybovrkoloru, BorderLayout.CENTER); return plansza; public static void main(string[] args) { // główny program // wyglšd ekranu try { UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName()); catch (Exception e) { //główne okno JFrame ramka = new JFrame("Aplikacja swingowa"); // JFrame - komponent szczytowy GUI - inne to JDialog, JApplet // dodaj zawartoć wygenerowanš przez ten program s14p_kolory aplikacja = new s14p_kolory(); Component zawartosvcv = aplikacja.createcomponents(); ramka.getcontentpane().add( zawartosvcv, BorderLayout.CENTER);

//Zakończenie kreowania ramki i pokazanie jej // reakcja ramki na nacinięcie krzyżyka ramka.addwindowlistener(new WindowAdapter() { ); public void windowclosing(windowevent e) { System.exit(0); ramka.pack(); // pokazanie ramki ramka.setvisible(true);

/* * 1.2 version. */ import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import javax.swing.*;

/* * This is like the FontDemo applet in volume 1, except that it * uses the Java 2D APIs to define and render the graphics and text. */ public class s21p_ksztalty extends Component { final static int maxcharheight = 15; final static int minfontsize = 6; final static Color bg = Color.white; final static Color fg = Color.black; final static Color red = Color.red; final static Color white = Color.white; final static BasicStroke stroke = new BasicStroke(2.0f); final static BasicStroke widestroke = new BasicStroke(8.0f); final static float dash1[] = {10.0f; final static BasicStroke dashed = new BasicStroke(1.0f, BasicStroke.CAP_BUTT,

BasicStroke.JOIN_MITER, 10.0f, dash1, 0.0f); Dimension totalsize; FontMetrics fontmetrics; public void init() { //Initialize drawing colors setbackground(bg); setforeground(fg); FontMetrics pickfont(graphics2d g2, String longstring, int xspace) { boolean fontfits = false; Font font = g2.getfont(); FontMetrics fontmetrics = g2.getfontmetrics(); int size = font.getsize(); String name = font.getname(); int style = font.getstyle();

while (!fontfits ) { if ( (fontmetrics.getheight() <= maxcharheight) && (fontmetrics.stringwidth(longstring) <= xspace) ) { fontfits = true; else { if ( size <= minfontsize ) { fontfits = true; else { g2.setfont(font = new Font(name, style, --size)); fontmetrics = g2.getfontmetrics(); return fontmetrics;

public void paint(graphics g) { Graphics2D g2 = (Graphics2D) g; g2.setrenderinghint(renderinghints.key_antialiasing, RenderingHints.VALUE_ANTIALIAS_ON); Dimension d = getsize(); int gridwidth = d.width / 6; int gridheight = d.height / 2; fontmetrics = pickfont(g2, "Filled and Stroked GeneralPath", gridwidth); Color fg3d = Color.lightGray; g2.setpaint(fg3d); g2.draw3drect(0, 0, d.width - 1, d.height - 1, true); g2.draw3drect(3, 3, d.width - 7, d.height - 7, false); g2.setpaint(fg); int x = 5;

int y = 7; int rectwidth = gridwidth - 2*x; int stringy = gridheight - 3 - fontmetrics.getdescent(); int rectheight = stringy - fontmetrics.getmaxascent() - y - 2; // draw Line2D.Double g2.draw(new Line2D.Double(x, y+rectheight-1, x + rectwidth, y)); g2.drawstring("line2d", x, stringy); x += gridwidth; // draw Rectangle2D.Double g2.setstroke(stroke); g2.draw(new Rectangle2D.Double(x, y, rectwidth, rectheight)); g2.drawstring("rectangle2d", x, stringy); x += gridwidth; // draw RoundRectangle2D.Double g2.setstroke(dashed); g2.draw(new RoundRectangle2D.Double(x, y, rectwidth, rectheight, 10, 10)); g2.drawstring("roundrectangle2d", x, stringy);

x += gridwidth; // draw Arc2D.Double g2.setstroke(widestroke); g2.draw(new Arc2D.Double(x, y, rectwidth, rectheight, 90, 135, Arc2D.OPEN)); g2.drawstring("arc2d", x, stringy); x += gridwidth; // draw Ellipse2D.Double g2.setstroke(stroke); g2.draw(new Ellipse2D.Double(x, y, rectwidth, rectheight)); g2.drawstring("ellipse2d", x, stringy); x += gridwidth; // draw GeneralPath (polygon) int x1points[] = {x, x+rectwidth, x, x+rectwidth; int y1points[] = {y, y+rectheight, y+rectheight, y; GeneralPath polygon = new GeneralPath(GeneralPath.WIND_EVEN_ODD, x1points.length); polygon.moveto(x1points[0], y1points[0]);

for ( int index = 1; index < x1points.length; index++ ) { polygon.lineto(x1points[index], y1points[index]); ; polygon.closepath(); g2.draw(polygon); g2.drawstring("generalpath", x, stringy); // NEW ROW x = 5; y += gridheight; stringy += gridheight; // draw GeneralPath (polyline) int x2points[] = {x, x+rectwidth, x, x+rectwidth; int y2points[] = {y, y+rectheight, y+rectheight, y; GeneralPath polyline = new GeneralPath(GeneralPath.WIND_EVEN_ODD, x2points.length); polyline.moveto (x2points[0], y2points[0]); for ( int index = 1; index < x2points.length; index++ ) {

polyline.lineto(x2points[index], y2points[index]); ; g2.draw(polyline); g2.drawstring("generalpath (open)", x, stringy); x += gridwidth; // fill Rectangle2D.Double (red) g2.setpaint(red); g2.fill(new Rectangle2D.Double(x, y, rectwidth, rectheight)); g2.setpaint(fg); g2.drawstring("filled Rectangle2D", x, stringy); x += gridwidth; // fill RoundRectangle2D.Double GradientPaint redtowhite = new GradientPaint(x,y,red,x+rectWidth, y,white); g2.setpaint(redtowhite); g2.fill(new RoundRectangle2D.Double(x, y, rectwidth, rectheight, 10, 10)); g2.setpaint(fg); g2.drawstring("filled RoundRectangle2D", x, stringy);

x += gridwidth; // fill Arc2D g2.setpaint(red); g2.fill(new Arc2D.Double(x, y, rectwidth, rectheight, 90, 135, Arc2D.OPEN)); g2.setpaint(fg); g2.drawstring("filled Arc2D", x, stringy); x += gridwidth; // fill Ellipse2D.Double redtowhite = new GradientPaint(x,y,red,x+rectWidth, y,white); g2.setpaint(redtowhite); g2.fill (new Ellipse2D.Double(x, y, rectwidth, rectheight)); g2.setpaint(fg); g2.drawstring("filled Ellipse2D", x, stringy); x += gridwidth; // fill and stroke GeneralPath

int x3points[] = {x, x+rectwidth, x, x+rectwidth; int y3points[] = {y, y+rectheight, y+rectheight, y; GeneralPath filledpolygon = new GeneralPath(GeneralPath.WIND_EVEN_ODD, x3points.length); filledpolygon.moveto(x3points[0], y3points[0]); for ( int index = 1; index < x3points.length; index++ ) { filledpolygon.lineto(x3points[index], y3points[index]); ; filledpolygon.closepath(); g2.setpaint(red); g2.fill(filledpolygon); g2.setpaint(fg); g2.draw(filledpolygon); g2.drawstring("filled and Stroked GeneralPath", x, stringy); /* public static void main(string s[]) { JFrame f = new JFrame("s21p_ksztalty"); f.addwindowlistener(new WindowAdapter() { public void windowclosing(windowevent e) {System.exit(0); );

JApplet applet = new s21p_ksztalty(); f.getcontentpane().add("center", applet); applet.init(); f.pack(); f.setsize(new Dimension(550,100)); f.show(); */ public static void main(string[] args) { // główny program // wyglšd ekranu try { UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName()); catch (Exception e) { //główne okno Component komponent = new s21p_ksztalty(); JFrame ramka = new JFrame("Aplikacja swingowa "+komponent.getclass().getname() ); // JFrame - komponent szczytowy GUI - inne to JDialog, JApplet // dodaj zawartoć wygenerowanš przez ten program

// Component zawartosvcv = aplikacja.createcomponents(); ramka.getcontentpane().add( komponent, BorderLayout.CENTER); //Zakończenie kreowania ramki i pokazanie jej // reakcja ramki na nacinięcie krzyżyka ramka.addwindowlistener(new WindowAdapter() { ); public void windowclosing(windowevent e) { System.exit(0); ramka.pack(); // pokazanie ramki ramka.setsize(new Dimension(550,100)); ramka.setvisible(true); // koniec klasy