Lekcja 6

Komponenty swingowe

Czy ja nawet przycisk muszę robić od zera?


import javax.swing.*;
import java.awt.*;

public class MyWindow extends JFrame {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(MyWindow::new);
    }

    private JPanel left;
    private JPanel right;
    private JTextField textField;

    public MyWindow() {
        super();
        setSize(1024, 768);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        setLayout(new BorderLayout());
        initComponents();
        
        setVisible(true);
    }

    private void initComponents() {
        textField = new JTextField();
        left = new JPanel();
        right = new JPanel();
        left.setLayout(new BoxLayout(left, BoxLayout.Y_AXIS));
        right.setLayout(new FlowLayout());
        add(left, BorderLayout.WEST);
        add(right, BorderLayout.CENTER);
        add(textField, BorderLayout.NORTH);
        for (int i = 0; i < 20; i++) {
            createButton(i);
        }
    }

    private void createButton(int i) {
        JButton button = new JButton();
        button.setText("Click me " + i);
        button.addActionListener((e) -> {
            setTitle(textField.getText());
        });
        if (Math.random() > 0.5) {
            left.add(button);
        } else {
            right.add(button);
        }
    }
}
            
Zadanie 0

Przygotuj okno z 2 polami tekstowymi i przyciskiem.

Po naciśnięciu w przycisk w tytule okna pojawia się suma liczb z pól tekstowych.

Zadanie 1

Utwórz okno z 2 panelami: jeden na górze i jeden w środku.

Górny panel ma mieć 3 przyciski, a w środkowym umieść kontrolkę JLabel (służy do wyświetlania tekstu).

Po naciśnięciu na dowolny przycisk, wspomniany JLabel zmienia swój tekst.

Zadanie 2

Przygotuj zegar, który jest w stanie wyświetlać czas w systemie 12 albo 24 godzinnym.

Użytkownik za pomocą przycisku powinien mieć możliwość zmiany formatu.

Może się przydać (nowa karta)