初遇GUI编程

package gui.experiment;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

/**
 * @author 倪*平 1571190173@qq.com
 * @date 2022/11/18 23:52
 */

public class Experiment {
    public static void main(String[] args) {
        new MyFrame();
    }
}

class MyFrame extends Frame {
    final Font font = new Font("宋体", Font.BOLD, 30);

    TextField nameField, jobField, genderField;
    TextArea resultArea;


    JLabel getJLabel(String str) {
        JLabel label = new JLabel(str);
        label.setFont(font);
        return label;
    }

    JButton getJButton(String str) {
        JButton jButton = new JButton(str);
        jButton.setFont(font);
        return jButton;
    }

    TextField getTextField() {
        TextField textField = new TextField();
        textField.setFont(font);
        return textField;
    }

    TextArea getTextArea() {
        TextArea textArea = new TextArea();
        textArea.setFont(font);
        return textArea;
    }

    MyFrame() {
        // 上
        Panel northPanel = new Panel(new GridLayout(3, 2));
        northPanel.setBackground(Color.cyan);

        JLabel jLabel = getJLabel("          姓名: ");
        JLabel jLabel1 = getJLabel("          职业: ");
        JLabel jLabel2 = getJLabel("          性别: ");

        nameField = getTextField();
        jobField = getTextField();
        genderField = getTextField();

        northPanel.add(jLabel);
        northPanel.add(nameField);
        northPanel.add(jLabel1);
        northPanel.add(jobField);
        northPanel.add(jLabel2);
        northPanel.add(genderField);

        // 中
        Panel centerPanel = new Panel(new FlowLayout());
        centerPanel.setBackground(Color.green);
        JButton copyButton = getJButton("复制");
        copyButton.setFont(font);
        centerPanel.add(copyButton);


        // 下
        Panel southPanel = new Panel(new FlowLayout());
        southPanel.setBackground(Color.pink);
        JLabel jLabel3 = getJLabel("          结果: ");
        resultArea = getTextArea();
        southPanel.add(jLabel3);
        southPanel.add(resultArea);


        // 监听按钮
        copyButton.addActionListener(new ButtonListener());

        setTitle("GUI示例");
        setLocation(200, 200);
        setLayout(new BorderLayout());
        add(northPanel, BorderLayout.NORTH);
        add(centerPanel, BorderLayout.CENTER);
        add(southPanel, BorderLayout.SOUTH);
        pack();
        setVisible(true);

        addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

    }

    private class ButtonListener implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {
            String name = nameField.getText();
            String job = jobField.getText();
            String gender = genderField.getText();
            resultArea.setText(name + "的职业是" + job + '\n' + name + "的性别是" + gender);
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值