search
HomeJavajavaTutorialHow to implement a simple calculator interface in java swing

Knowledge applied:

1. The use of the commonly used top-level container JFrame class
2. The use of the commonly used intermediate container JPanel class
3. The use of single-line text boxes Use of the implementation class JTextField class
4. Use of the button implementation class JButton class
5. Use of the border layout manager
6. Use of the grid layout manager

Basic idea:

1. Create a window f1
2. Create a text box t1
3. Create an inner panel p3 and save the text box t1
4 .Create 16 buttons
5.Create inner panel p2, set to grid layout, used to save 16 buttons
6.Create outer panel p1, set to border layout, save p3 in the north and save in the middle p2

The following is the specific code implementation, which 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);   //设置可见
    }
}

Run result:

How to implement a simple calculator interface in java swing

The above is the detailed content of How to implement a simple calculator interface in java swing. For more information, please follow other related articles on the PHP Chinese website!

Statement
This article is reproduced at:亿速云. If there is any infringement, please contact admin@php.cn delete
How does platform independence benefit enterprise-level Java applications?How does platform independence benefit enterprise-level Java applications?May 03, 2025 am 12:23 AM

Java is widely used in enterprise-level applications because of its platform independence. 1) Platform independence is implemented through Java virtual machine (JVM), so that the code can run on any platform that supports Java. 2) It simplifies cross-platform deployment and development processes, providing greater flexibility and scalability. 3) However, it is necessary to pay attention to performance differences and third-party library compatibility and adopt best practices such as using pure Java code and cross-platform testing.

What role does Java play in the development of IoT (Internet of Things) devices, considering platform independence?What role does Java play in the development of IoT (Internet of Things) devices, considering platform independence?May 03, 2025 am 12:22 AM

JavaplaysasignificantroleinIoTduetoitsplatformindependence.1)Itallowscodetobewrittenonceandrunonvariousdevices.2)Java'secosystemprovidesusefullibrariesforIoT.3)ItssecurityfeaturesenhanceIoTsystemsafety.However,developersmustaddressmemoryandstartuptim

Describe a scenario where you encountered a platform-specific issue in Java and how you resolved it.Describe a scenario where you encountered a platform-specific issue in Java and how you resolved it.May 03, 2025 am 12:21 AM

ThesolutiontohandlefilepathsacrossWindowsandLinuxinJavaistousePaths.get()fromthejava.nio.filepackage.1)UsePaths.get()withSystem.getProperty("user.dir")andtherelativepathtoconstructthefilepath.2)ConverttheresultingPathobjecttoaFileobjectifne

What are the benefits of Java's platform independence for developers?What are the benefits of Java's platform independence for developers?May 03, 2025 am 12:15 AM

Java'splatformindependenceissignificantbecauseitallowsdeveloperstowritecodeonceandrunitonanyplatformwithaJVM.This"writeonce,runanywhere"(WORA)approachoffers:1)Cross-platformcompatibility,enablingdeploymentacrossdifferentOSwithoutissues;2)Re

What are the advantages of using Java for web applications that need to run on different servers?What are the advantages of using Java for web applications that need to run on different servers?May 03, 2025 am 12:13 AM

Java is suitable for developing cross-server web applications. 1) Java's "write once, run everywhere" philosophy makes its code run on any platform that supports JVM. 2) Java has a rich ecosystem, including tools such as Spring and Hibernate, to simplify the development process. 3) Java performs excellently in performance and security, providing efficient memory management and strong security guarantees.

How does the JVM contribute to Java's 'write once, run anywhere' (WORA) capability?How does the JVM contribute to Java's 'write once, run anywhere' (WORA) capability?May 02, 2025 am 12:25 AM

JVM implements the WORA features of Java through bytecode interpretation, platform-independent APIs and dynamic class loading: 1. Bytecode is interpreted as machine code to ensure cross-platform operation; 2. Standard API abstract operating system differences; 3. Classes are loaded dynamically at runtime to ensure consistency.

How do newer versions of Java address platform-specific issues?How do newer versions of Java address platform-specific issues?May 02, 2025 am 12:18 AM

The latest version of Java effectively solves platform-specific problems through JVM optimization, standard library improvements and third-party library support. 1) JVM optimization, such as Java11's ZGC improves garbage collection performance. 2) Standard library improvements, such as Java9's module system reducing platform-related problems. 3) Third-party libraries provide platform-optimized versions, such as OpenCV.

Explain the process of bytecode verification performed by the JVM.Explain the process of bytecode verification performed by the JVM.May 02, 2025 am 12:18 AM

The JVM's bytecode verification process includes four key steps: 1) Check whether the class file format complies with the specifications, 2) Verify the validity and correctness of the bytecode instructions, 3) Perform data flow analysis to ensure type safety, and 4) Balancing the thoroughness and performance of verification. Through these steps, the JVM ensures that only secure, correct bytecode is executed, thereby protecting the integrity and security of the program.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)