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

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

