Tworzenie aplikacji graficznych

background image

1

Tworzenie graficznych

interfejsów użytkownika

Swing

background image

2

Pakiety

• Komponenty

import java.awt.*;

import javax.swing.*;

• Obsługa zdarzeń

import java.awt.event.*;

background image

3

Komponenty

JComponent

JButton

JLabel

JTextField

JTextArea

JComboBox

• ustawienie
rozmiarów

• ustawienie
koloru tła

• ustawienie
czcionki używanej
do wyświetlania
tekstu

•...

background image

4

Kontenery

• Kontener to pojemnik

na komponenty

• Kontener jest też

komponentem – to

znaczy że może być

wkładany do innego

kontenera

• Metody kontenerów:

– dodawanie i usuwanie

elementów kontenera,

– rozmieszczanie

komponentów

Container

JWindow

JFrame

JPanel

background image

5

Okna i ramki

• JWindow posiada

panel na zawartość

• JFrame posiada

dodatkowo ramkę,
pasek tytułu,
przyciski
zamknięcia,
minimalizacji, panel
na menu

background image

6

Tworzenie własnego okna

public class Okno extends JFrame{

JButton b = new JButton("Przycisk");
Container cp;

public Okno(){
super("Tytuł na belce okna");
cp = getContentPane();
cp.add(b);
setSize(500,300);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}

public static void main(String[] args){
new Okno();
}

}

background image

7

Tworzenie własnego okna

public class Okno extends JFrame{

JButton b = new JButton("Przycisk");
JPanel panel = new JPanel();

public Okno(){
super("Tytuł na belce okna");
panel.add(b);
setContentPane(panel);
setSize(500,300);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}

public static void main(String[] args){
new Okno();
}

}

background image

8

Tworzenie własnego okna

public class MojPanel extends JPanel{

JButton b = new JButton("Przycisk");

public MojPanel(){

add(b);

}

public static void main(String[] args){

JFrame f = new JFrame("Tytuł");
f.setContentPane(new MojPanel());
f.setSize(500,300);

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setVisible(true);

}

}

background image

9

Zaprogramowanie przycisku

„Zamknij”

setDefaultCloseOperation(JFrame.EXIT_ON_CL

OSE);

• DISPOSE_ON_CLOSE

– zamyka ramkę,

usuwa obiekt reprezentujący ramkę, ale

pozostawia pracującą aplikację

• DO_NOTHING_ON_CLOSE

– pozostawia

ramkę otwartą i kontynuuje pracę aplikacji

• HIDE_ON_CLOSE

– zamyka ramkę

pozostawiając pracującą aplikację

background image

11

Przyciski

JButton przycisk = new

JButton("Przycisk");

ImageIcon ico = new

ImageIcon("smile.gif");

JButton przycisk = new

JButton("Przycisk",

ico);

background image

12

Etykiety

JLabel label =

JLabel("Etykieta");

ImageIcon ico = new

ImageIcon("smile.gif");

JLabel label =

JLabel("Etykieta", ico,

SwingConstants.RIGHT);

background image

13

Pola tekstowe

JTextField txt =

new JTextField("tekst",

10);

txt.setText("napis");
String s = txt.getText();

JPasswordField p = new

JPasswordField(10);

char[] haslo =

p.getPassword();

....
Arrays.fill(haslo,' ');

background image

14

Obszary tekstowe

JTextArea t = new

JTextArea(5, 10);

t.setLineWrap(true)

;

t.setWrapStyleWord(true)

;

JScrollPane s = new

JScrollPane(t);

background image

15

Pola opcji i pola wyboru

JCheckBox c = new

JCheckBox("opcja 1");

boolean zaznaczony =

c.isSelected();

JRadioButton r = new

JRadioButton("opcja 1");

background image

16

Grupowanie przycisków

opcji

• Obiekt klasy ButtonGroup jest logiczny

(nie graficzny) – zapewnia, że tylko jeden

przycisk z grupy może być wciśnięty

ButtonGroup grupa = new

ButtonGroup();
grupa.add(przycisk1);

grupa.add(przycisk2);

grupa.add(przycisk3);

background image

17

Listy

JComboBox c = new

JComboBox();

c.addItem(

"

Biały

"

);

c.addItem(

"

Niebieski

"

);

c.setEditable(true);
String s = (String)

c.getSelectedItem();

JList l = new JList();
String s = (String)

l.getSelectedValue();

background image

18

Okna dialogowe

MessageDialog

ConfirmDialog

InputDialog

background image

19

Okna dialogowe

JOptionPane.

showMessageDialog

(

null,"Jakaś wiadomość");

String odp = JOptionPane.

showInputDialog

(

"Podaj wartość");

int odp = JOptionPane.

showConfirmDialog

(

null,"Czy...?");

switch(odp){

case JOptionPane.YES_OPTION : ....;

case JOptionPane.NO_OPTION : ....;

}

background image

20

Wybieranie pliku i koloru

JFileChooser f = new
JFileChooser();
int wynik =
f.showOpenDialog(this);
File ff =
f.getSelectedFile();

Color k =
JColorChooser.showDialog(

this,"Wybierz",

Color.black);

background image

21

Suwaki i wskaźniki

zaawansowania

JSlider s = new

JSlider(0,100);

int w = s.getValue();

JProgressBar pb = new

JProgressBar(0,100);

pb.setStringPainted(

true);

pb.setValue(30);
int w = pb.getValue();

background image

23

Menu

JMenuBar mb = new JMenuBar();

JMenu p = new JMenu(„Plik”);
JMenu e = new JMenu(„Edycja”);

JMenuItem o = new

JMenuItem(„Otwórz”);

JMenuItem z = new

JMenuItem(„Zapisz”);

JMenuItem cz = new

JMenuItem(„Czcionka”);

mb.add(p); mb.add(e);
p.add(o); p.add(z);
e.add(cz);
okno.setJMenuBar(mb);

Plik

Edycja

Otwó

rz

Czcion

ka

Zapis

z

JMenuBar

JMenu

JMenuItem

background image

24

Panel z kartami

JTabbedPane p =

new JTabbedPane();

p.add(„Dane”,panel1);
p.add(„Właściwości”,

panel2);

background image

25

SplitPanel

JSplitPane panel =

new JSplitPane(
JSplitPane.HORIZONTAL_SPL
IT,p1,p2);

background image

26

Rozmieszczanie

komponentów

• Każdy kontener posiada obiekt

zajmujący się rozmieszczaniem

komponentów – menedżer rozkładu

(layout)

• Zmiana menedżera rozkładu – metoda

setLayout

• Domyślny menedżer dla okna (JFrame)

 BorderLayout

• Domyślny menedżer dla paneli

(JPanel)  FlowLayout

background image

27

BorderLayout

c – kontener

c.setLayout(new

BorderLayout());

c.add(k1,”North”);

c.add(k2,”South”);

c.add(k3,”Center”);

c.add(k4,”West”);

c.add(k5,”East”);

background image

28

FlowLayout

c – kontener

c.setLayout(

new FlowLayout(

FlowLayout.CENTER

));

c.add(k1);

c.add(k2);

c.add(k3);

c.add(k4);

c.add(k5);

background image

29

GridLayout

c – kontener

c.setLayout(new
GridLayout(2,2));

c.add(k1);
c.add(k2);
c.add(k3);
c.add(k4);

background image

30

CardLayout

background image

31

Składanie layoutów

p.add(b1);
p.add(b2);

cp.setLayout(new

GridLayout(2,2));

cp.add(p);
cp.add(b3);
cp.add(b4);
cp.add(b5);

JButton b1 = new JButton("k1");
JButton b2 = new JButton("k2");
JButton b3 = new JButton("k3");
JButton b4 = new JButton("k4");
JButton b5 = new JButton("k5");
JPanel p = new JPanel();


Document Outline


Wyszukiwarka

Podobne podstrony:
C Tworzenie aplikacji graficznych w NET 3 0 cshne3
Tworzenie nowoczesnych aplikacji graficznych w WPF 3
informatyka tworzenie nowoczesnych aplikacji graficznych w wpf jaroslaw cisek ebook
Tworzenie nowoczesnych aplikacji graficznych w WPF
Tworzenie nowoczesnych aplikacji graficznych w WPF twnoap
Tworzenie nowoczesnych aplikacji graficznych w WPF
PHP i Oracle Tworzenie aplikacji webowych od przetwarzania danych po Ajaksa
C Tworzenie aplikacji sieciowych Gotowe projekty cshta2

więcej podobnych podstron