[小练习] 初识Swing

package com.shiyan.course;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JTextField;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class MySwingWindow extends JFrame {
    private JLabel myLabel;
    private JTextField myTextField;
    private JButton myButton;
    
    public MySwingWindow() {
        // 子类的构造函数中默认调用父类的无参构造函数
        this.setSize(400, 300);
        this.getContentPane().setLayout(null);
        this.setTitle("My First Swing Window");
        this.add(getJLabel(), null);
        this.add(getJTextField(), null);
        this.add(getJButton(), null);
    }
    
    private JLabel getJLabel() {
        if (this.myLabel == null) {
            this.myLabel = new JLabel();
            this.myLabel.setBounds(5, 10, 250, 30);
            this.myLabel.setText("Hello! Welcome to shiyanlou.com");
        }
        return this.myLabel;
    }
    
    private JButton getJButton() {
        if (this.myButton == null) {
            this.myButton = new JButton();
            this.myButton.setBounds(5, 80, 100, 40);
            this.myButton.setText("Click me!");
            this.myButton.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    myLabel.setForeground(Color.RED);
                    myTextField.setBackground(Color.gray);
                }
            });
        }
        return this.myButton;
    }
    
    private JTextField getJTextField() {
        if (this.myTextField == null) {
            this.myTextField = new JTextField();
            this.myTextField.setBounds(5, 45, 200, 30);
            this.myTextField.setText("Shi Yan Lou");
        }
        return this.myTextField;
    }

    public static void main(String[] args) {
        MySwingWindow window = new MySwingWindow();
        window.setVisible(true);
    }
}

你可能感兴趣的:([小练习] 初识Swing)