更新時(shí)間:2022-12-15 11:56:10 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1711次
動(dòng)力節(jié)點(diǎn)小編這次用java的swing來(lái)實(shí)現(xiàn)計(jì)算器。
第一張圖:
總體布局采用流式布局。
1.文本框
只有一個(gè)文本框 JPanel 添加一個(gè)
JTextField.boxField.setLayout(new FlowLayout()); box.setPreferredSize(新維度(300, 25)); boxField.add(框);
JTextField 設(shè)置尺寸需要使用 setPreferredSize() 而不是 setSize()。
2.鑰匙
Key 4/*4 Grid layout , 逐一添加按鈕即可 .
buttonsField.setLayout(new GridLayout(4, 4, 20, 20)); buttonsField.setPreferredSize(新維度(300, 300)); buttonsField.add(xxx); //添加....
按鈕的鼠標(biāo)事件,想一想,點(diǎn)擊一個(gè)按鈕,然后在文本框中會(huì)有相應(yīng)的響應(yīng),相應(yīng)地添加事件監(jiān)聽(tīng)
.num0.addActionListener(v -> { box.setText(box.getText() + " 0"); mainFrame.requestFocus(); });
requestFocus()這一行把焦點(diǎn)還給了JFrame,因?yàn)槭髽?biāo)點(diǎn)擊button之后,button獲得了焦點(diǎn),會(huì)影響后面的鍵盤(pán)監(jiān)聽(tīng)。
鍵盤(pán)事件和鼠標(biāo)事件類似,對(duì)每個(gè)按鍵進(jìn)行判斷。
這里是一個(gè)KeyListener注冊(cè)到JFrame上面,直接在里面改寫(xiě)下面三個(gè)KeyListener方法:
public void keyPressed(KeyEvent e); public void keyReleased(KeyEvent e); public void keyTyped(KeyEvent e);
基本上通過(guò)
如果 (e.getKeyCode() == KeyEvent.VK_xxxx)
要確定密鑰,唯一需要注意的是 + 和 /*
計(jì)算表達(dá)式部分這里就不細(xì)說(shuō)了。
簡(jiǎn)單的說(shuō),先用GetResult.setExpression();
這個(gè)靜態(tài)方法設(shè)置表達(dá)式,然后傳遞
GetResult.valid() 方法
判斷是否合法,如果合法則通過(guò)
獲取結(jié)果.result()
獲取字符串結(jié)果。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743