Przykłady związane z komponentami GUI

Przykłady związane z komponentami GUI

JFrame

JFrame frame = new JFrame("Tytuł ramki");

frame.setSize(300 , 300);    // Ustawia rozmiar ramki.
frame.pack();    // Ustawia taki rozmiar, by udało się spakować znajdujące się w ramce komponenty.
frame.setLocation(300, 300);    // Miejsce na ekranie na którym pojawić się ma ramka.
frame.setVisible(true);    // Widoczność ramki.
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    // Domyślna operacja po naciśnięciu "X".

JTextArea i JScrollPane

W przypadku przypisania JScrollPane do JTextArea, do ramki, czy panelu dodaje się tylko obiekt scroll.

JTextArea txtArea = new JTextArea();
txtArea.setLineWrap(true);    // Na końcu linii przerzuca tekst do następnej.
txtArea.setWrapStyleWord(true);    // Przerzuca całe wyrazy, nie pojedyncze litery.
 
JScrollPane scroll = new JScrollPane();
scroll = new JScrollPane(txtArea,
        ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
        ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS    // Scroll występuje zawsze.
ScrollPaneConstants.VERTICAL_SCROLLBAR_HIDE    // nigdy
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED // Tylko gdy jest taka potrzeba

// Dla HORIZONTAL sytuacja wygląda tak samo

JRadioButton i ButtonGroup

JRadioButton rButton = new JRadioButton("Przycisk", true);
JRadioButton rButton2 = new JRadioButton("Przycisk 2", false);
 
ButtonGroup group = new ButtonGroup();
 
group.add(rButton);
group.add(rButton2);

JComboBox

JComboBox cBox = new JComboBox();
cBox.addItem("Java");

JSlider

JSlider slider = new JSlider(0, 100, 50):
JSlider slider2 = new JSlider(SwingConstants.VERTICAL, 0, 100, 50);

JMenuBar, JMenu i JMenuItem

JMenuBar menuBar = new JMenuBar();
JMenu menuPlik = new JMenu("Plik");
JMenu menuEdycja = new JMenu("Edycja");
JMenuItem opcjaZapisz = new JMenuItem("Zapisz", 'Z'); // 'Z' to  MNEMONIK, gdy menu Plik będzie otworzone, to po naciśnięciu z automatycznie odpali się akcja przypisana do Zapisz.
JMenuItem opcjaWczytaj= new JMenuItem("Wczytaj");
JMenuItem opcjaZaznacz = new JMenuItem("Zaznacz wszystko");
         
menuPlik.add(opcjaZapisz);
menuPlik.addSeparator();    // Oddziela kreską różne kategorie opcji.
menuPlik.add(opcjaWczytaj);
menuEdycja.add(opcjaZaznacz);
 
opcjaZapisz.setAccelerator(KeyStroke.getKeyStroke("ctrl S")); // AKCELERATOR - przypisuje skrót ctrl + s do plik/zapisz.
 
opcjaZaznacz.setEnabled(false);    // Dezaktywuje element menu.
         
menuBar.add(menuPlik);
menuBar.add(menuEdycja);
         
setJMenuBar(menuBar);

Do menu można też dodać elementy pokroju RadioButton i CheckBox.

JRadioButtonMenuItem radioItem= new JRadioButtonMenuItem("Radio");
JCheckBoxMenuItem checkBoxItem = new JCheckBoxMenuItem("CheckBox");

JPopupMenu

JMenuItem opcjaKopiuj = new JMenuItem();
JPopupMenu popupMenu = new JPopupMenu();
 
popupMenu.add(opcjaKopiuj);
 
jakisPanelCzyCos.setComponentPopupMenu(popUpMenu);

JOptionPane

JOptionPane.showConfirmDialog(panel, "Usunąć wszystko?");
JOptionPane.showInputDialog(panel, "Podaj imię:");
JOptionPane.showMessageDialog(panel, "Wykonano!");

Przykładowe okno dialogowe, w którym umieścić można własne opcje:

class Opcje {
    String[] opcje = {"OPCJA 0", "OPCJA 1", "OPCJA 2"};

    public Opcje() {
        int wybor = JOptionPane.showOptionDialog(null, "Opcje", "Wybierz opcję", 0, JOptionPane.INFORMATION_MESSAGE, null, opcje, opcje[1]);
        
if(wybor != -1) System.out.println("Wybrałeś: " + opcje[wybor]);
        else System.out.println("Zamknąłeś program nie wybierając żadnej z opcji!");
    }
}

Przykładowe okno dialogowe, które pobiera od użytkownika informację:

class InputDialog {
    public InputDialog() {
        String imie = JOptionPane.showInputDialog(null, "Podaj swoje imię:");

        if (imie != null) System.out.println("Witaj " + imie + ". :)");
        else System.out.println("Nie podałeś swojego imienia, więc nie mogę się przywitać. :(");
    }
}

Tworzenie własnego okna dialogowego:

class OknoDialogowe extends JDialog {
    public OknoDialogowe(JFrame frame) {
        super(frame, "Własne okno", true);
        add(new JLabel("Jakiś komunikat"));
        JPanel panel = new JPanel();
        JButton button = new JButton("OK");
         
        button.addActionListener(new ActionListener(){ 
            public void actionPerformed(ActionEvent event) {
                setVisible(false);
            }
        });
         
        panel.add(button);
        add(BorderLayout.SOUTH, panel);
        setSize(250, 150);
        setVisible(true);
    }
}

JTabbedPane

panel = new JPanel();
panel2 = new JPanel();
label = new JLabel("Zawartość panelu pierwszego");
label2 = new JLabel("Zawartość panelu drugiego");
tabbedPane = new JTabbedPane();
 
panel.add(label);
panel2.add(label2);
tabbedPane.addTab("Zakładka 1", panel);
tabbedPane.addTab("Zakładka 2", panel2);

JProgressBar

JProgressBar progressBar = new JProgressBar(0, 100);    // Min i max wartość.
progressBar.setValue(50);    // Ustawia wartość na 50% - akurat w tym przypadku.
progressBar.setStringPainted(true);    // Włącza postęp w %.
progressBar.setIndeterminate(true);    // Doskonale nadaje się do zastosowania, gdy tak naprawdę trudno przewidzieć ile potrwa zadanie.
progressBar.setString("Zadanie wykonane!");    // Wstawia jakiś ciąg znaków na pasku postępu - najpierw trzeba użyć setStringPainted.

Border i BorderFactory

Przykład zwykłej ramki:

Border ramka = BorderFactory.createEtchedBorder();
panel.setBorder(ramka);

Przykład ramki z tytułem:

Border ramka = BorderFactory.createEtchedBorder();
Border ramkaZTytulem = BorederFactory.createTitledBorder(ramka, "Tytuł ramki");
 
panel.setBorder(ramkaZTytulem);

Cursor

Tworzenie i zmiana kursora na inny:

Cursor cursor = new Cursor(Cursor.TEXT_CURSOR);
panel.setCursor(cursor);

JToolBar

Paski narzędzi można przestawiać pomiędzy poszczególnymi krawędziami ramki. Taki obiekt można również wyciągnąć, by znajdował się w osobnej ramce. Po jej zamknięciu wróci na swoje miejsce.

JToolBar toolBar = new JToolBar();
Action akcja = new JakasAkcja("Czerwony", new ImageIcon("red_icon.gif") ,Color.red, panel);    // Tworzenie obiektu akcji.
toolBar.add(akcja);
add(BorderLayout.NORTH, toolBar);

Metoda setToolTip


Dymki zawierające dodatkowe informacje, przypisać można do każdego obiektu JComponent. Przykład z przyciskiem:

button = new JButton("Przycisk");
button.setToolTipText("Jakiś opis.");


Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *