您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“如何使用Java圖形化界面編程實(shí)現(xiàn)簡(jiǎn)單計(jì)算器”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“如何使用Java圖形化界面編程實(shí)現(xiàn)簡(jiǎn)單計(jì)算器”這篇文章吧。
使用AWT
編程,FrameNORTH
區(qū)域放置TextField
組件,將指定為4行5列GridLayout布局管理器的Panel放置于Frame
中部區(qū)域,其中填充操作符和操作數(shù)按鈕。
 按鈕觸發(fā)事件源,對(duì)按鈕添加ActionListener
注冊(cè)監(jiān)聽(tīng)。自定義NumListener(操作數(shù)監(jiān)聽(tīng)類(lèi))、OperatListener
(操作符監(jiān)聽(tīng)類(lèi))、EqualListener
(“=”符監(jiān)聽(tīng)類(lèi))和匿名內(nèi)部類(lèi)(如b[11]’-'符監(jiān)聽(tīng)類(lèi))分情況對(duì)按鈕事件進(jìn)行監(jiān)聽(tīng)并響應(yīng)。
注意:整數(shù)、浮點(diǎn)、負(fù)數(shù)以及連續(xù)運(yùn)算均可以。
界面效果:
簡(jiǎn)單計(jì)算一下 -12 + 3 = -9
代碼:
import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import static java.awt.Color.blue; public class Calculation { //操作數(shù) double x,y; String op; boolean flag; Frame frame = new Frame("智子的計(jì)算器!"); TextField tf = new TextField(30); Button[] b = new Button[20]; public void init(){ //北部區(qū)域放置文本框 frame.add(tf,BorderLayout.NORTH); Panel panel = new Panel(); panel.setLayout(new GridLayout(4,5,2,2)); //設(shè)置按鈕 String s = "+-*/%"; for(int i=0;i<10;i++) {//運(yùn)算數(shù) b[i] = new Button(i + ""); b[i].setForeground(blue); } for(int i=0;i<5;i++) {//運(yùn)算符 b[i+10]=new Button(s.charAt(i)+""); b[i+10].setForeground(blue); } String[] t = {"sqrt","^2","^3","=","."}; for(int i=0;i<5;i++){ b[i+15]=new Button(t[i]); b[i+15].setForeground(blue); } //按鈕注冊(cè)監(jiān)聽(tīng) for (int i = 0; i < 10; i++) {//操作數(shù)注冊(cè)監(jiān)聽(tīng) b[i].addActionListener(new NumListener()); } for (int i = 10; i < 18; i++) {//操作符注冊(cè)監(jiān)聽(tīng) if(i==11) continue; b[i].addActionListener(new OperatListener()); } b[11].addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if(!flag){ tf.setText("-"); flag = true; } else { x = Double.parseDouble(tf.getText()); op = e.getActionCommand(); flag = false; } } }); //“=”注冊(cè)監(jiān)聽(tīng) b[18].addActionListener(new EqualListener()); //“.”注冊(cè)監(jiān)聽(tīng) b[19].addActionListener(new NumListener()); //將按鈕加入panel for (int i = 0; i < 20; i++) { panel.add(b[i]); } //設(shè)置中部按鈕 frame.add(panel); //窗口監(jiān)聽(tīng)器 注冊(cè)監(jiān)聽(tīng) frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); //設(shè)置窗口最優(yōu)并可見(jiàn) frame.pack(); frame.setVisible(true); } //數(shù)字按鈕監(jiān)聽(tīng)器類(lèi) public class NumListener implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { String t = e.getActionCommand(); String s = tf.getText(); if(flag==false) tf.setText(t); else tf.setText(s+t); flag = true; } } //操作符按鈕監(jiān)聽(tīng)器類(lèi) public class OperatListener implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { x = Double.parseDouble(tf.getText()); op = e.getActionCommand(); flag = false; } } //等號(hào)按鈕監(jiān)聽(tīng)器類(lèi) public class EqualListener implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { y = Double.parseDouble(tf.getText()); flag = true; switch(op){ case "+":tf.setText(x+y+""); break; case "-":tf.setText(x-y+""); break; case "*":tf.setText(x*y+""); break; case "/": if(y!=0) tf.setText(x/y+""); else tf.setText("inf"); break; case "%":tf.setText(x%y+""); break; case "sqrt":tf.setText((int)Math.sqrt(x)+""); break; case "^2":tf.setText(y*y+""); break; case "^3":tf.setText(y*y*y+""); break; } } } public static void main(String[] args) { new Calculation().init(); } }
以上是“如何使用Java圖形化界面編程實(shí)現(xiàn)簡(jiǎn)單計(jì)算器”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。