tworzenie gui w javie l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Tworzenie GUI w Javie PowerPoint Presentation
Download Presentation
Tworzenie GUI w Javie

Loading in 2 Seconds...

play fullscreen
1 / 44

Tworzenie GUI w Javie - PowerPoint PPT Presentation


  • 163 Views
  • Uploaded on

Tworzenie GUI w Javie. Swingujące programowanie. Plan. Wprowadzenie Podejścia do budowy GUI w Javie Budowa GUI przy pomocy Swinga Wprowadzenie do JFC - Swinga Przegląd komponentów graficznych biblioteki oraz sposób zarządzania Grafika. Swing. JFC udostępniane z JRE (javax.swing.*)

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Tworzenie GUI w Javie' - eytan


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
tworzenie gui w javie
Tworzenie GUI w Javie
  • Swingujące programowanie
slide2
Plan
  • Wprowadzenie
    • Podejścia do budowy GUI w Javie
  • Budowa GUI przy pomocy Swinga
    • Wprowadzenie do JFC - Swinga
    • Przegląd komponentów graficznych biblioteki oraz sposób zarządzania
    • Grafika
swing
Swing
  • JFC udostępniane z JRE (javax.swing.*)
  • Kiedyś mało wydajny (polepszoneod Java 1.4)
  • Napisane w Javie (AWT – Java / C)
  • Niezależne od platformy

Swing

java.awt

sun.awt

Operating system

slide4
SWT
  • Zależne od platformy (jest implementacja dla większości platform)
  • Używa natywnych kontrolek systemowych (JNI)
  • Tylko komponenty które nie są wspierane przez dany system operacyjny zaimplementowane
  • Biblioteka wyższego poziomu JFace

JFace

SWT

JNI

Windowing system

Operating system

swt vs swing
SWT vs. Swing
  • Niezależne
  • Różnie to bywa
  • Look and Feel
  • Używa Observer Pattern
  • Manager rozmieszczenia
  • Zależne od platformy
  • Wydajne
  • Używa Observer Pattern
  • Manager rozmieszczenia

JFace

SWT

Swing

java.awt

JNI

sun.awt

Windowing system

Operating system

Operating system

slide6
Plan
  • Wprowadzenie
    • Podejścia do budowy GUI w Javie
  • Budowa GUI przy pomocy Swinga
    • Wprowadzenie do JFC - Swinga
    • Przegląd komponentów graficznych biblioteki oraz sposób zarządzania
    • Grafika
java foundation classes
Java Foundation Classes

Zawiera:

  • The Swing Components
  • Pluggable Look and Feel Support
  • Accessibility API
  • Java 2D API (Java 2 Platform only)
  • Drag and Drop Support (Java 2 Platform only)
podej cie mvc
Podejście MVC
  • Model – dane stanu konkretnego komponentu
  • View – jak komponent jest widziany na ekranie
  • Controller – jak występowanie zdarzeń łączy dwa powyższe

http://www.tol.oulu.fi/kurssit/ot3/Lectures/OT3_L3.html

swing hierarchia
Swing hierarchia

Kontenery najwyższego poziomu

JFrame

JApplet

JDialog

JWindow

swing hierarchia10
Swing hierarchia

http://www.particle.kth.se/~fmi/kurs/PhysicsSimulation/Lectures/07A/swingDesign.html

wzorzec composite12
Wzorzec Composite

http://www.javaworld.com/javaworld/jw-09-2002/jw-0913-designpatterns.html

kontenery najwy szego poziomu
Kontenery najwyższego poziomu
  • Każdy program napisany w Swingu, musi posiadać przynajmniej jeden kontener najwyższego poziomu
    • JFrame ( pojedyncze okno aplikacji)
    • JDialog (okienko dialogowe)
    • JApplet (dla apletów)
hello world jframe
Hello world - JFrame

Eclipse – przykład (1)

slide16
Menu
  • Specjalna warstwa (Menu Bar)
  • Menu składane z „klocków”

www.java.sun.com

slide17
Menu

Eclipse – przykład (2)

obs uga akcji
Obsługa akcji
  • Obsługa zdarzeń oparta jest na wzorcu Observer/Listener
  • Każdy komponent może być obserwowany przez wielu obserwatorów
  • Każdy komponent może obsługiwać wiele typów słuchaczy (np. zdarzenia obsługi myszy, klawiatury, zmiany struktury itd.)
wzorzec observer
Wzorzec observer

Następny proszę!

Lalaaaalalaa!

Dziękujemy

Proszę nie dzwonić,

My zadzwonimy...

Broadway

wzorzec observer20
Wzorzec observer

http://www.javaworld.com/javaworld/jw-03-2003/jw-0328-designpatterns.html

swing awt observer
Swing/AWT & Observer

menuItem.addActionListener(new ActionListener(){

publicvoid actionPerformed(ActionEvent e) {

// tutaj kod obslugi

System.out.println(”Wybrano mnie”);

}

});

JMenuItem

Listeners [menuItem]

swing awt observer22
Swing/AWT & Observer

JMenuItem

Event

Listeners [menuItem]

Event

menuItem.addActionListener(new ActionListener(){

publicvoid actionPerformed(ActionEvent e) {

// tutaj kod obslugi

System.out.println(”Wybrano mnie”);

}

});

przyk ady s uchaczy awt
Przykłady słuchaczy AWT

Event listener interfaces in java.awt.events

  • ActionListener
  • AdjustmentListener
  • AWTEventListener
  • ComponentListener
  • ContainerListener
  • FocusListener Focus
  • HierarchyBoundsListener Hierarchy
  • HierarchyListener Hierarchy
  • InputMethodListener
  • ItemListener
  • KeyListener
  • MouseListener
  • MouseMotionListener
  • MouseWheelListener
  • TextListener
  • WindowFocusListener
  • WindowListener
  • WindowStateListener
przyk ady s uchaczy swing
Przykłady słuchaczy Swing

Event listener interfaces in javax.swing.event

  • AncestorListener
  • CaretListener
  • CellEditorListener
  • ChangeListener
  • DocumentListener
  • HyperlinkListener
  • InternalFrameListener
  • ListDataListener
  • ListSelectionListener
  • MenuDragMouseListener
  • MenuKeyListener
  • MenuListener
  • MouseInputListener
  • PopupMenuListener
  • TableColumnModelListener
  • TableModelListener
  • TreeExpansionListener
  • TreeModelListener
  • TreeSelectionListener
  • TreeWillExpandListener
  • UndoableEditListener
slide25
Menu

Eclipse – przykład (3)

look feel
Look & Feel
  • W JFC istnieje możliwość zmiany sposobu wyświetlania kontrolek
  • Domyślny wygląd to Metal / Aqua
  • Można wybrać wygląd systemu operacyjnego
  • W JFC nie korzystano z kontrolek natywnych systemu (zmienione podejście ostatnio)
look feel27
Look & Feel

Eclipse – przykład (4)

podstawowe komponenty
Podstawowe komponenty
  • JLabel
  • JButton
  • JCheckBox
  • JRadioButton
  • JPanel
  • JSlider
  • JColorChooser
  • JTextField
  • JList
  • JScrollPane
  • JTree

Eclipse – przykład (5)

layout managers
Layout Managers
  • Służą do automatycznego rozkładania komponentów
  • Działają według określonych zasad
  • Przykłady
    • FlowLayout
    • BorderLayout
    • GridLayout
    • GridBagLayout
    • CardLayout
flowlayout
FlowLayout
  • Układa komponenty od lewej do prawej w kolejnych wierszach

Eclipse – przykład (6)

borderlayout
BorderLayout
  • Każdy komponent umieszczany jest w jednym z pięciu rejonów:
    • na dole,
    • na górze,
    • po lewo,
    • po prawo
    • po środku
  • Komponenty dodawane do kontenera bez wskazania rejonu domyślnie dodawane są po środku
  • Dodanie nowego komponentu do rejonu już posiadającego zawartość spowoduje jej podmianę

Eclipse – przykład (7)

gridlayout
GridLayout
  • GridLayout układa komponenty w komórkach siatki, której rozmiar określamy przy pomocy parametrów konstruktora.
  • Komponenty zajmują kolejne komórki zgodnie z kolejnością dodawania.

Eclipse – przykład (8)

gridbaglayout
GridBagLayout
  • Zaawansowana możliwość układania komponentów, wpisywanych w siatkę

Eclipse – przykład (9)

cardlayout
CardLayout
  • Komponenty umieszczane jak talia kart

Eclipse – przykład (10)

slide35

Okna dialogowe wejścia/wyjścia

Różne rodzaje dialogów, udostępnianych przez klasę JOptionPane

Tworzenie okien następuje poprzez wywołanie statycznych metod klasy JOptionPane. Metody te jako wynik zwracają kod wybranego przycisku albo wartość wprowadzanych do nich danych.

slide36
Plan
  • Wprowadzenie
    • Podejścia do budowy GUI w Javie
  • Budowa GUI przy pomocy Swinga
    • Wprowadzenie do JFC - Swinga
    • Przegląd komponentów graficznych biblioteki oraz sposób zarządzania
    • Grafika
rysowanie na komponencie
Rysowanie na komponencie
  • Każdy komponent ma metodę paintComponent, w której można rysować
  • Można ją przeciążyć i zaimplementować własne rysowanie
  • W metodzie dostępna jest zmienna typu Graphics, przekazywana jako parametr
  • Możemy zrzutować ją na Graphics2D, aby otrzymać bardziej rozbudowany wachlarz możliwości
rysowanie na komponencie38
Rysowanie na komponencie
  • Przydatne metody
    • // Ustawienia ołówka
      • g.setColor(someColor);
      • g.setFont(someLimitedFont);
    • // Rysowanie kształtów
      • g.drawString(...);
      • g.drawLine(...)
      • g.drawRect(...); // outline
      • g.fillRect(...); // solid
      • g.drawPolygon(...); // outline
      • g.fillPolygon(...); // solid
      • g.drawOval(...); // outline
      • g.fillOval(...); // solid
rysowanie na komponencie39
Rysowanie na komponencie
  • Przydatne metody
    • g2d.setPaint(fillColorOrPattern);
    • g2d.setStroke(penThicknessOrPattern);
    • g2d.setComposite(someAlphaComposite);
    • g2d.setFont(anyFont);
    • g2d.translate(...);
    • g2d.rotate(...);
    • g2d.scale(...);
    • g2d.setTransform(someAffineTransform);
    • g2d.draw(s); // outline
    • g2d.fill(s); // solid
przekszta cenia
Przekształcenia

http://www.glyphic.com/transform/plugin/1intro.html

przekszta cenia41
Przekształcenia

http://www.glyphic.com/transform/plugin/4app.html

przekszta cenia42
Przekształcenia

http://www.glyphic.com/transform/plugin/7wiggly.html

przyk ad
Przykład

Eclipse – przykład (11)

s wing
Swing

Dziękuje za uwagę

http://java.sun.com/docs/books/tutorial/uiswing/components/examples/index.html