Achieve java-swing- simple calculator interface

We have learned the knowledge portion of the swing, now part of the integrated use of inside knowledge to achieve a calculator interface.

To apply the knowledge:

1. Common top container JFrame class used
2. intermediate common vessel JPanel class using the
3-line text box implementation class JTextField class used
4. Button implementation class JButton class uses
5. Border layout manager uses
6. grid layout manager uses

The basic idea:

1. Create a window F1
2. Create a text box T1
3. Create the inner panel p3, save the text box T1
4. Create 16 button
5. Create inner panel p2, grid layout is set to, for storing 16 buttons
6. create the outer panel p1, set the border layout, northern save p3, p2 save central

The following is a specific code implementation can be run directly

import javax.swing.JFrame;   //顶层容器 (框架)
import javax.swing.JPanel; //中间容器 (嵌板)最常用的面板
import javax.swing.JTextField; //单行文本框的实现类
import javax.swing.JButton;  //按钮
import javax.swing.border.EmptyBorder; 
//需要用EmptyBorder类来设置面板的边框属性
import javax.swing.SwingConstants; 
//SwingConstants是一个通常用于在屏幕上定位(位置)或定向(方向)组件的常量的集合
import java.awt.*; //布局管理器的类在这里面

public class calculator
{
	public static void main(String[] args) 
	{
		JFrame f1 = new JFrame("计算器");  //创建顶层容器(窗口)
		f1.setSize(250, 300);        //设置窗口大小

		JPanel p1 = new JPanel(new BorderLayout(5,5)); //创建一个面板
		//里面的new BorderLayout(5,5)是设置面板的布局(边框布局)
		//其中(5,5)的第1个5表示上下控件间距,第2个表示左右控件间距
		
		p1.setBorder(new EmptyBorder(5,5,5,5));   //设置边界距离  border 边界
		//面板的setBorder函数,用于设置面板边缘向内收缩宽度
        //里面的EmtyBorder(5,5,5,5)表示面板上,左,下,右各向内收缩 5个像素
        
        JTextField t1 = new JTextField(); //创建一个单行文本框
		t1.setColumns(10);  //这个用于设置文本框的列数  Columns 列
		t1.setHorizontalAlignment(SwingConstants.RIGHT); //设置文本框右对齐     
		//Horizontal 水平的		Alignment 对齐  记两个单词
		
		JPanel p2 = new JPanel(new GridLayout(4,4,5,5));//创建第二个面板
		//其中设置其布局为网格布局,(第一个4表示1行4个控件)
		//第2个4表示1列4个控件,第1个5表示上下控件间隔为5,第2个5表示左右控件间隔为5(像素)

		JButton b1 = new JButton("7");    //创建16个按钮
		JButton b2 = new JButton("8");
		JButton b3 = new JButton("9");
		JButton b4 = new JButton("/");
		
		JButton b5 = new JButton("4");
		JButton b6 = new JButton("5");
		JButton b7 = new JButton("6");
		JButton b8 = new JButton("*");

		JButton b9 = new JButton("1");
		JButton b10 = new JButton("2");
		JButton b11 = new JButton("3");
		JButton b12 = new JButton("-");
		
		JButton b13 = new JButton("0");
		JButton b14 = new JButton(".");
		JButton b15 = new JButton("=");
		JButton b16 = new JButton("+");

		p2.add(b1);    //将16个按钮全部添加到网格布局的面板p2中
		p2.add(b2);
		p2.add(b3);
		p2.add(b4);
		
		p2.add(b5);
		p2.add(b6);
		p2.add(b7);
		p2.add(b8);
		
		p2.add(b9);
		p2.add(b10);
		p2.add(b11);
		p2.add(b12);
		
		p2.add(b13);
		p2.add(b14);
		p2.add(b15);
		p2.add(b16);
		
		JPanel p3 = new JPanel();   //创建第三个面板,用于保存之前的文本框t1
		p3.add(t1);     //将文本框t1添加到面板p3中
		p1.add(p3,BorderLayout.NORTH);//将p3添加到 为边框布局面板的p1的北部
		p1.add(p2,BorderLayout.CENTER); //将p2添加到面板的中部
		
		f1.add(p1);           //p1面板添加到窗口
		f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭时操作
		f1.setVisible(true);   //设置可见
	}
}

operation result:
Calculator interface

Guess you like

Origin blog.csdn.net/weixin_44512194/article/details/93254608