Java交互界面实现计算器开发设计【附函数源码,Java理论知识
}
.[](https://gitee.com/vip204888/java-p7)操作符點擊后數(shù)據(jù)轉(zhuǎn)換賦值函數(shù)=================================================================================當我們點擊了運算操作符之后,說明我們的第一個數(shù)據(jù)已經(jīng)輸入完成了,這個時候,我們將要輸入的是第二個數(shù)據(jù),這時候我們就需要進行數(shù)據(jù)的賦值轉(zhuǎn)換,因為我們最開始的時候是使用INumsecand這個變量來接收數(shù)據(jù)的,所以在點擊運算操作符之后,我們需要將INumsecand的值賦給INumfirst,并將INumsecand的值賦于0,重新接收第二個數(shù)據(jù)。你可能會問,為什么不直接使用INumfirst接收第一個數(shù)據(jù),使用INumsecand接收第二個數(shù)據(jù),原因是因為,當你點擊數(shù)字控件時,我們無法判斷你輸入的數(shù)據(jù)是第一個數(shù)據(jù)還是第二個數(shù)據(jù),我們只能將你輸入的數(shù)據(jù)統(tǒng)一的賦值給某一個變量,在這里這個變量就是INumsecand,只有我們判斷到當點擊了運算操作符之后,說明我們的上一個數(shù)據(jù)已經(jīng)輸入完成了,這時候才需要我們將INumsecand賦值給INumfirst,來說明我們得到了第一個數(shù)據(jù)。該函數(shù)的實現(xiàn)代碼如下://定義操作符點擊后數(shù)據(jù)轉(zhuǎn)換賦值的函數(shù)
public static void Operation_Cliked() {
INumFirst = INumSecond; //將第一次鍵入的值賦給第一個數(shù)INumSecond = 0; //將接收輸入數(shù)值的變量賦值于0DotCliked = false; //將布爾型小數(shù)點變量賦初值為:未點擊lastPrecisionNum = 1;}
.[](https://gitee.com/vip204888/java-p7)計算器窗口界面函數(shù)============================================================================在這兩個函數(shù)完成之后,就是我們計算器的界面設(shè)計函數(shù)了,在該函數(shù)中,我們需要對計算器的整體界面進行布局設(shè)計,同時還需要對每一個控件添加監(jiān)控,當我們點擊相應(yīng)的控件的時候,可以觸發(fā)相應(yīng)的事件操作。[](https://gitee.com/vip204888/java-p7)運算符控件------------------------------------------------------------------------如我們點擊加法按鍵時,需要將我們第一次輸入的數(shù)據(jù)和加法運算符輸出出來,并且調(diào)用操作符點擊后數(shù)據(jù)轉(zhuǎn)換賦值的函數(shù),來進行數(shù)據(jù)的賦值轉(zhuǎn)換。//設(shè)置加法按鍵+
JButton add_bt = new JButton("+");add_bt.setBounds(5, 110, 80, 40);add_bt.setFont(font);container.add(add_bt);//添加單擊監(jiān)控add_bt.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {// TODO Auto-generated method stubOperation = "+";setOutput += Operation + "\n";text.setText(setOutput); //數(shù)值和運算符輸出OperationCliked = true;Operation_Cliked(); //調(diào)用操作符點擊后數(shù)據(jù)轉(zhuǎn)換賦值的函數(shù)}}); [](https://gitee.com/vip204888/java-p7)數(shù)字控件-----------------------------------------------------------------------當我們點擊數(shù)字0-9時,說明我們正在進行數(shù)值的輸入,這個時候就需要獲取到相應(yīng)控件上的數(shù)值,并且調(diào)用控件觸發(fā)時集中處理函數(shù),將我們鍵入的數(shù)字進行賦值。以控件數(shù)字7為例,在這里我使用num\_7.getText()來獲取當前所點擊控件的文本,其實這是比較笨的一種方法,需要對每一個控件使用該函數(shù),還有一種方法是獲取當前焦點所在的控件,并且獲取其文本,對這種方法熟悉的小伙伴可以留言大灰狼一起交流。下面是數(shù)字7控件的相應(yīng)觸發(fā)代碼:JButton num_7 = new JButton(“7”);
num_7.setBounds(5, 200, 80, 40);
num_7.setFont(font);
container.add(num_7);
num_7.addActionListener(new ActionListener() {
@Overridepublic void actionPerformed(ActionEvent arg0) {// TODO Auto-generated method stubString strNum = num_7.getText();ControlNum = java.lang.Double.parseDouble(strNum);Numbers_Cliked(); //調(diào)用數(shù)值控件觸發(fā)集中處理函數(shù)text.setText(setOutput + setOutput2); //文本框輸出}});
其他數(shù)字控件與其類似。[](https://gitee.com/vip204888/java-p7)小數(shù)點控件------------------------------------------------------------------------當我們點擊小數(shù)點的時候,說明我們輸入的數(shù)據(jù)存在小數(shù)位,這個時候我們就需要對其作出相應(yīng)的操作,如我們在點擊運算操作符之前點擊的小數(shù)點控件,則將小數(shù)點顯示在文本框的第一行,表示第一個數(shù)是一個小數(shù),如果我們是在點擊運算操作符之后點擊的小數(shù)點控件,則需要將小數(shù)點顯示在文本框的第二行,表示我們輸入的第二個數(shù)是小數(shù)。具體實現(xiàn)代碼如下://設(shè)置小數(shù)點按鈕
JButton num_dot = new JButton(".");num_dot.setBounds(175, 335, 80, 40);num_dot.setFont(font);container.add(num_dot);num_dot.addFocusListener(new FocusListener() {@Overridepublic void focusLost(FocusEvent arg0) {// TODO Auto-generated method stub}@Overridepublic void focusGained(FocusEvent arg0) {// TODO Auto-generated method stubif (OperationCliked) {setOutput2 += ".";text.setText(setOutput + setOutput2);DotCliked = true;}else {setOutput += ".";text.setText(setOutput + setOutput2);DotCliked = true;}}}); [](https://gitee.com/vip204888/java-p7)等號控件-----------------------------------------------------------------------當我們點擊等號控件的時候,說明我們的數(shù)據(jù)和運算符的輸入已經(jīng)完成了,接下來我們就只需要根據(jù)我們鍵入的運算符進行判斷,并進行相應(yīng)的運算即可,同時在得到結(jié)果之后,我們還應(yīng)將之前定義的所有變量賦予初值,方便我們進行下次輸入。實現(xiàn)代碼如下://設(shè)置等號按鈕
JButton num_equ = new JButton("=");
num_equ.setBounds(260, 110, 80, 130);
num_equ.setFont(font);
container.add(num_equ);
num_equ.addActionListener(new ActionListener() {
@Overridepublic void actionPerformed(ActionEvent arg0) {// TODO Auto-generated method stubswitch (Operation) {case "+":IResult = INumFirst + INumSecond;break;case "-":IResult = INumFirst - INumSecond;break;case "*":IResult = INumFirst * INumSecond;break;case "/":IResult = INumFirst / INumSecond;break;case "X2":IResult = INumFirst * INumFirst;break;case "X3":IResult = INumFirst * INumFirst * INumFirst;break;default:break;}if (Operation == "X2" ){setOutput = INumFirst + "*" + INumFirst + "\n";String strIResult = java.lang.Double.toString(IResult);setOutput2 = strIResult;text.setText(setOutput + setOutput2);最后
我還通過一些渠道整理了一些大廠真實面試主要有:螞蟻金服、拼多多、阿里云、百度、唯品會、攜程、豐巢科技、樂信、軟通動力、OPPO、銀盛支付、中國平安等初,中級,高級Java面試題集合,附帶超詳細答案,希望能幫助到大家。
資料領(lǐng)取方式:戳這里免費下載
還有專門針對JVM、SPringBoot、SpringCloud、數(shù)據(jù)庫、Linux、緩存、消息中間件、源碼等相關(guān)面試題。
(setOutput + setOutput2);
最后
我還通過一些渠道整理了一些大廠真實面試主要有:螞蟻金服、拼多多、阿里云、百度、唯品會、攜程、豐巢科技、樂信、軟通動力、OPPO、銀盛支付、中國平安等初,中級,高級Java面試題集合,附帶超詳細答案,希望能幫助到大家。
資料領(lǐng)取方式:戳這里免費下載
[外鏈圖片轉(zhuǎn)存中…(img-HPo8EhF5-1628341440326)]
還有專門針對JVM、SPringBoot、SpringCloud、數(shù)據(jù)庫、Linux、緩存、消息中間件、源碼等相關(guān)面試題。
[外鏈圖片轉(zhuǎn)存中…(img-ljhTltP6-1628341440330)]
總結(jié)
以上是生活随笔為你收集整理的Java交互界面实现计算器开发设计【附函数源码,Java理论知识的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Comparator的compare方法
- 下一篇: 基于android的二维码的图书馆座位预