有加減乘除小數(shù)點(diǎn)等于的運(yùn)算就行了,反正我開始點(diǎn)需other, 然后點(diǎn)jframe,進(jìn)入頁面之后點(diǎn)一下水平制然后就點(diǎn)什么jbutton
jText之類的,然后這些按鈕里面寫什么內(nèi)容呢??我就不會了
1 回答
已采納

大咪
TA貢獻(xiàn)785條經(jīng)驗(yàn) 獲得超332個贊
import?java.awt.*; import?java.awt.event.*; import?javax.swing.*; ? public?class?Calc?extends?JFrame?implements?ActionListener?{ ????private?static?final?long?serialVersionUID?=?-169068472193786457L; ????private?class?WindowCloser?extends?WindowAdapter?{ ???????public?void?windowClosing(WindowEvent?we)?{ ???????????System.exit(0); ???????} ????} ? ????int?i; ????????private?final?String[]?str?=?{?"7",?"8",?"9",?"/",?"4",?"5",?"6",?"*",?"1", ???????????"2",?"3",?"-",?".",?"0",?"=",?"+"?}; ????//?建立按鈕 ????JButton[]?buttons?=?new?JButton[str.length]; ????//?撤銷重置 ????JButton?reset?=?new?JButton("CE"); ????//?建立文本域顯示結(jié)果 ????JTextField?display?=?new?JTextField("0"); ???? ????????public?Calc()?{ ???????super("Calculator"); ???????//?添加一個面板 ???????JPanel?panel1?=?new?JPanel(new?GridLayout(4,?4)); ???????//?panel1.setLayout(new?GridLayout(4,4)); ???????for?(i?=?0;?i?<?str.length;?i++)?{ ???????????buttons[i]?=?new?JButton(str[i]); ???????????panel1.add(buttons[i]); ???????} ???????JPanel?panel2?=?new?JPanel(new?BorderLayout()); ???????//?panel2.setLayout(new?BorderLayout()); ???????panel2.add("Center",?display); ???????panel2.add("East",?reset); ???????//?JPanel?panel3?=?new?Panel(); ???????getContentPane().setLayout(new?BorderLayout()); ???????getContentPane().add("North",?panel2); ???????getContentPane().add("Center",?panel1); ???????//?添加操作動作的監(jiān)聽器. ???????for?(i?=?0;?i?<?str.length;?i++) ???????????buttons[i].addActionListener(this); ???????//?為重置按鈕添加監(jiān)聽器 ???????reset.addActionListener(this); ???????display.addActionListener(this); ???????//?The?"close"?button?"X". ???????addWindowListener(new?WindowCloser()); ???????//?Initialize?the?window?size. ???????setSize(800,?800); ???????//?Show?the?window. ???????//?show();?Using?show()?while?JDK?version?is?below?1.5. ???????setVisible(true); ???????//?Fit?the?certain?size. ???????pack(); ????}??? ???? ????public?void?actionPerformed(ActionEvent?e)?{ ???????Object?target?=?e.getSource(); ???????String?label?=?e.getActionCommand(); ???????if?(target?==?reset) ???????????handleReset(); ???????else?if?("0123456789.".indexOf(label)?>?0) ???????????handleNumber(label); ???????else ???????????handleOperator(label); ????} ????//?Is?the?first?digit?pressed? ????boolean?isFirstDigit?=?true; ????/** ?????*?Number?handling. ?????*?@param?key?the?key?of?the?button. ?????*/ ????public?void?handleNumber(String?key)?{ ???????if?(isFirstDigit) ???????????display.setText(key); ???????else?if?((key.equals("."))?&&?(display.getText().indexOf(".")?<?0)) ???????????display.setText(display.getText()?+?"."); ???????else?if?(!key.equals(".")) ???????????display.setText(display.getText()?+?key); ???????isFirstDigit?=?false; ????} ???? ????/** ?????*?Reset?the?calculator. ?????*/ ????public?void?handleReset()?{ ???????display.setText("0"); ???????isFirstDigit?=?true; ???????operator?=?"="; ????} ? ????double?number?=?0.0; ????String?operator?=?"="; ???? ???????public?void?handleOperator(String?key)?{ ???????if?(operator.equals("+")) ???????????number?+=?Double.valueOf(display.getText()); ???????else?if?(operator.equals("-")) ???????????number?-=?Double.valueOf(display.getText()); ???????else?if?(operator.equals("*")) ???????????number?*=?Double.valueOf(display.getText()); ???????else?if?(operator.equals("/")) ???????????number?/=?Double.valueOf(display.getText()); ???????else?if?(operator.equals("=")) ???????????number?=?Double.valueOf(display.getText()); ???????display.setText(String.valueOf(number)); ???????operator?=?key; ???????isFirstDigit?=?true; ????} ???? ????public?static?void?main(String[]?args)?{ ???????new?Calc(); ????} }
你創(chuàng)建完的面板需要繼承一個監(jiān)聽器,他的目的是監(jiān)聽你的按鍵并將參數(shù)傳入,算法部分就是很簡單的+-*/
添加回答
舉報
0/150
提交
取消