java gui笔记

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

public class Main{
    JButton setButtons(String name)
    {
        JButton tButton = new JButton();
        tButton.setFont(new Font("consolas", Font.PLAIN, 20));
        tButton.setBackground(Color.white);
        tButton.setText(name);
        return tButton;
    }
    void createFrame(String title)
    {
        JFrame jf = new JFrame(title);          //创建Frame
//        jf.setLayout(new GridLayout(4,4,2,2));
        Container container = jf.getContentPane();   //获得容器
//        JLabel jl = new JLabel("this is a pane");
        JTextField jt = new JTextField("0");    //创建文本框,设置框内默认值
        jt.setEditable(false);          //设置不可编辑
        jt.setHorizontalAlignment(JTextField.RIGHT);            //设置文本框的对齐方式
        jt.setPreferredSize(new Dimension (300,80));            //设置文本框的高度和宽度
        jt.setFont(new Font("consolas", Font.PLAIN, 18));        //设置文本框的字体信息
        container.add(jt, BorderLayout.NORTH);                                  //将文本框加入到容器的北部
        JPanel buttonPannel = new JPanel();
        buttonPannel.setLayout(new GridLayout(4,4,2,2));    //Grid 布局方式。

        for(int i = 1; i < 4; i++)
        {
            JButton jb = setButtons(""+i);
            buttonPannel.add(jb);
            jb.addActionListener(new ActionListener() {
                String s = jb.getText();
                @Override
                public void actionPerformed(ActionEvent e) {
                    jt.setText(jt.getText()+s);
                }
            });
        }
        buttonPannel.add(setButtons("+"));
        for(int i = 4; i < 7; i++)
        {
            JButton jb = setButtons(""+i);
            buttonPannel.add(jb);
            jb.addActionListener(new ActionListener() {
                String s = jb.getText();
                @Override
                public void actionPerformed(ActionEvent e) {
                    jt.setText(jt.getText()+s);
                }
            });
        }
        buttonPannel.add(setButtons("-"));
        for(int i = 7; i < 10; i++)
        {
            JButton jb = setButtons(""+i);
            buttonPannel.add(jb);
            jb.addActionListener(new ActionListener() {
                String s = jb.getText();
                @Override
                public void actionPerformed(ActionEvent e) {
                    jt.setText(jt.getText()+s);
                }
            });
        }

        buttonPannel.add(setButtons("*"));
        JButton CE = setButtons("CE");
        CE.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                jt.setText("0");
            }
        });
        buttonPannel.add(CE);
        JButton zero = setButtons("0");
        zero.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                jt.setText(jt.getText()+"0");
            }
        });
        buttonPannel.add(zero);
        buttonPannel.add(setButtons("="));
        buttonPannel.add(setButtons("/"));

        container.add(buttonPannel);
//        jl.setHorizontalAlignment(SwingConstants.CENTER);
//        container.add(jl);
        container.setBackground(Color.white);
        jf.setVisible(true);
        jf.setSize(600,400);
        jf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    }
    public static void main(String[] args) {
        new Main().createFrame("not the first");
    }
}
原文地址:https://www.cnblogs.com/incredible-x/p/10014005.html