java swing實現(xiàn)簡單計算器界面
本文實例為大家分享了java swing實現(xiàn)簡單計算器界面的具體代碼,供大家參考,具體內(nèi)容如下
已經(jīng)學(xué)習(xí)了一部分的swing知識,現(xiàn)在綜合運用里面的部分知識來實現(xiàn)一個計算器的界面。
運用到的知識:
1.常用頂層容器 JFrame類 的使用
2.常用中間容器 JPanel類 的使用
3.單行文本框的實現(xiàn)類 JTextField類 的使用
4.按鈕的實現(xiàn)類 JButton類 的使用
5.邊框布局管理器 的使用
6.網(wǎng)格布局管理器 的使用
基本思路:
1.創(chuàng)建1個窗口f1
2.創(chuàng)建1個文本框t1
3.創(chuàng)建內(nèi)層面板p3,保存文本框t1
4.創(chuàng)建16個按鈕
5.創(chuàng)建內(nèi)層面板p2,設(shè)置為網(wǎng)格布局,用于保存16個按鈕
6.創(chuàng)建外層面板p1,設(shè)置為邊框布局,北部保存p3,中部保存p2
下面是是具體的代碼實現(xiàn),可以直接運行
import javax.swing.JFrame; ? //頂層容器 (框架)
import javax.swing.JPanel; //中間容器 (嵌板)最常用的面板
import javax.swing.JTextField; //單行文本框的實現(xiàn)類
import javax.swing.JButton; ?//按鈕
import javax.swing.border.EmptyBorder;?
//需要用EmptyBorder類來設(shè)置面板的邊框?qū)傩?
import javax.swing.SwingConstants;?
//SwingConstants是一個通常用于在屏幕上定位(位置)或定向(方向)組件的常量的集合
import java.awt.*; //布局管理器的類在這里面
public class calculator
{
?? ?public static void main(String[] args)?
?? ?{
?? ??? ?JFrame f1 = new JFrame("計算器"); ?//創(chuàng)建頂層容器(窗口)
?? ??? ?f1.setSize(250, 300); ? ? ? ?//設(shè)置窗口大小
?? ??? ?JPanel p1 = new JPanel(new BorderLayout(5,5)); //創(chuàng)建一個面板
?? ??? ?//里面的new BorderLayout(5,5)是設(shè)置面板的布局(邊框布局)
?? ??? ?//其中(5,5)的第1個5表示上下控件間距,第2個表示左右控件間距
?? ??? ?
?? ??? ?p1.setBorder(new EmptyBorder(5,5,5,5)); ? //設(shè)置邊界距離 ?border 邊界
?? ??? ?//面板的setBorder函數(shù),用于設(shè)置面板邊緣向內(nèi)收縮寬度
? ? ? ? //里面的EmtyBorder(5,5,5,5)表示面板上,左,下,右各向內(nèi)收縮 5個像素
? ? ? ??
? ? ? ? JTextField t1 = new JTextField(); //創(chuàng)建一個單行文本框
?? ??? ?t1.setColumns(10); ?//這個用于設(shè)置文本框的列數(shù) ?Columns 列
?? ??? ?t1.setHorizontalAlignment(SwingConstants.RIGHT); //設(shè)置文本框右對齊 ? ??
?? ??? ?//Horizontal 水平的?? ??? ?Alignment 對齊 ?記兩個單詞
?? ??? ?
?? ??? ?JPanel p2 = new JPanel(new GridLayout(4,4,5,5));//創(chuàng)建第二個面板
?? ??? ?//其中設(shè)置其布局為網(wǎng)格布局,(第一個4表示1行4個控件)
?? ??? ?//第2個4表示1列4個控件,第1個5表示上下控件間隔為5,第2個5表示左右控件間隔為5(像素)
?? ??? ?JButton b1 = new JButton("7"); ? ?//創(chuàng)建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個按鈕全部添加到網(wǎng)格布局的面板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(); ? //創(chuàng)建第三個面板,用于保存之前的文本框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);//設(shè)置關(guān)閉時操作
?? ??? ?f1.setVisible(true); ? //設(shè)置可見
?? ?}
}運行結(jié)果:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Cloud多個微服務(wù)之間調(diào)用代碼實例
這篇文章主要介紹了Spring Cloud多個微服務(wù)之間調(diào)用代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-12-12
Java中弱引用和軟引用的區(qū)別以及虛引用和強引用介紹
很早Java API就添加了弱引用(WeakReference)和軟引用(SoftReference),但并不是所有的程序員都熟悉這兩個概念2014-04-04
IDEA 程序包不存在,找不到符號但是明明存在對應(yīng)的jar包(問題分析及解決方案)
這篇文章主要介紹了IDEA 程序包不存在,找不到符號但是明明存在對應(yīng)的jar包 的解決方案,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08
解析Spring Boot內(nèi)嵌tomcat關(guān)于getServletContext().getRealPath獲取得到臨時
大家都很糾結(jié)這個問題在使用getServletContext().getRealPath()得到的是臨時文件的路徑,每次重啟服務(wù),這個臨時文件的路徑還好變更,下面小編通過本文給大家分享Spring Boot內(nèi)嵌tomcat關(guān)于getServletContext().getRealPath獲取得到臨時路徑的問題,一起看看吧2021-05-05
SpringBoot之那些注入不了的Spring占位符(${}表達式)問題
這篇文章主要介紹了SpringBoot之那些注入不了的Spring占位符(${}表達式)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04
Springboot獲取前端反饋信息并存入數(shù)據(jù)庫的實現(xiàn)代碼
這篇文章主要介紹了Springboot獲取前端反饋信息并存入數(shù)據(jù)庫的實現(xiàn)代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03
springboot用thymeleaf模板的paginate分頁完整代碼
本文根據(jù)一個簡單的user表為例,展示 springboot集成mybatis,再到前端分頁完整代碼,需要的朋友可以參考下2017-07-07

