Zaprojektuj aplikację okienkową Swing, używając komponentów tego pakietu. Program powinien stanowić interfejs graficzny do jakiejś sensownej aplikacji. Może to być np.:
zwykły edytor, przeglądarka systemu plików, gra z prostą grafiką, program do sporządzania rysunków.
Na następnych zajęciach będziemy dodawać do niego obsługę zdarzeń (myszka, klawiatura).
Należy (sensownie) użyć możliwie wielu różnych komponentów Swing oraz eksperymentować z ich właściwościami. Użyj kontenerów (np. JPanel) do grupowania inncy komponentów.
Sposób budowania aplikacji Swing (a raczej konstruktora jej głównej klasy) jest taki:
import java.awt.*; import javax.swing.*;
class SwingGui extends JFrame {
public SwingGui() { // Ustalenie tytułu okna (opcjonalne): super("Swing GUI");
// Umiejscowienie okna na ekranie (opcjonalne): setLocation(300, 300);
// Tworzenie komponentów: JLabel lab = new JLabel("Etykieta"); /* * różne komponenty ... */ JButton but = new JButton("Przycisk");
// Ustalenie własciwości komponentów: lab.setForeground(Color.red); /* * właściwości zależne od komponentu ... */ but.setBackground(Color.blue);
// Dodanie komponentów do contentPane, inaczej się nie ukażą: add(lab); /* * dodajemy komponenty, które mają być umieszczone w głównym oknie */ add(but);
/* Poniższe dwie instrukcje są niezbędne. * Mogą wystąpić tylko na końcu kodu budującego okno. */ // ustalenie rozmiarów okna pack(); // pokazanie okna setVisible(true); }
public static void main(String[] args) { new SwingGui(); }
}
Najprostsze komponenty, których można użyć to:
JPanel
JLabel
JButton
JCheckbox
JRadioButton
JToggleButton
JTextArea
JTextField
JComboBox
Bardziej złożone to:
JScrollbar
JSpinner
JSlider
JList
JScrollPane
JSplitPane
JTabbedPane
JTable
JTree
Wymagają one dodatkowych operacji do sensownego użycia.
Można również użyć dialogów:
JFileChooser
JColorChooser
JOptionPane
Dodatkowe właściwości:
Tworzenie menu: klasy JMenuBar, JMenu, JMenuItem i inne.
Tworzenie paska narzędzi: komponent JToolBar.
Skróty klawiaturowe: metoda setMnemonic(char).
Dymki podpowiedzi: metoda setToolTipText(String).
Klasy pochodzą z pakietu javax.swing lub java.awt.