package calculator;/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
import javax.swing.*;
//import java.swing.event.*;
import java.awt.event.*;
import java.awt.*;public class Calculator
extends JFrame {
private JButton[] bts = null;
private String[] btNames = {
"CE", "C", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0",
"+", "-", "*", "/", "=", "Sqrt", "1/X", "B","."}; private JLabel input = new JLabel("");
private JLabel result = new JLabel("");
private JLabel lInput=new JLabel("input: ");
private JLabel lResult = new JLabel("result: ");
private static final int ADD = 12; //jia
private static final int REDUCE = 13; //jian
private static final int MULTIPLICATION = 14; //cheng
private static final int DIV = 15; //chu
private static final int RESULT = 16; //jieguo
private static final int SQRT = 17; //pingfang
private static final int RECIPROCAL = 18; //daoshu
private static final int BINARY = 19; //erjinzhi
private Container container;
private GridBagLayout layout;
private GridBagConstraints constraints;
private StringBuffer sb = new StringBuffer();
public Calculator() {
super("Calculator");
setSize(400, 200);
setLocation(200, 150);
setVisible(true);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
container = getContentPane();
layout = new GridBagLayout();
container.setLayout(layout);
constraints = new GridBagConstraints();
addComponent(lInput, 0, 0, 1, 1);
addComponent(input, 0, 1, 10, 1);
addComponent(lResult, 1, 0, 1, 1);
addComponent(result, 1, 1, 10, 1);
bts = new JButton[btNames.length];
for (int i = 0; i < btNames.length; i++) {
bts[i] = new JButton(btNames[i]);
if (i < 2)
addComponent(bts[i], 3, i + 5, 1, 1);
else if (i > 1 && i < 9)
addComponent(bts[i], 4, i - 2, 1, 1);
else if (i > 8 && i < 16)
addComponent(bts[i], 5, i - 9, 1, 1);
else if (i > 15)
addComponent(bts[i], 6, i - 16, 1, 1);
bts[i].addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) { JButton bt = (JButton) e.getSource();
String btName = bt.getLabel().trim();
int flag = indexButton(btName);
//is nummber button if (((flag > 1 && flag < 12)||flag==20) && sb.length() < 20) {
sb.append(btName);
input.setText(sb.toString()); }
else {
String rs="";
switch (flag) {
case Calculator.ADD:
rs=addDo();break;
case Calculator.REDUCE:
rs=rdeDo();break;
case Calculator.MULTIPLICATION:
rs=mltDo();break;
case Calculator.DIV:
rs=divDo();break;
case Calculator.RESULT:
rs=resultDo();break;
case Calculator.SQRT:
rs=sqrtDo();break;
case Calculator.RECIPROCAL:
rs=rpcDo();break;
case Calculator.BINARY:
rs=bayDo();
}
sb=new StringBuffer();
result.setText(rs);
} }
}
); } setVisible(true);
}//jia
private String addDo() {
float sum = 0;
float old = 0;
float now = 0;
String sOldSum = result.getText();
String sNum = input.getText();
input.setText("");
old = check(sOldSum);
now = check(sNum);
sum=old+now;
return String.valueOf(sum);
}//jian
private String rdeDo() {
return null;
}//cheng
private String mltDo() {
return null;
}//chu
private String divDo() {
return null;
}//pingfang
private String sqrtDo() {
return null;
}//daoshu
private String rpcDo() {
return null;
}//dengyu
private String resultDo() {
return null;
}//erjinzhi
private String bayDo() {
return null;
} private int indexButton(String name) {
for (int i = 0; i < btNames.length; i++) {
if (name.equals(btNames[i])) {
return i;
}
}
return -1;
}
private float check(String sNum){
float num=0;
if(sNum!=null&&!sNum.equals("")){
num=Float.parseFloat(sNum);
}
return num;
}
private void addComponent(Component component, int row, int column, int width,
int height) {
constraints.gridx = column;
constraints.gridy = row; constraints.gridwidth = width;
constraints.gridheight = height; layout.setConstraints(component, constraints);
container.add(component);
} public static void main(String args[]) {
// new Calculator().show();
String s="FAasdfj8d";
String temp = s.substring(s.length()-2, s.length());
try{
int i = Integer.parseInt(temp);
if(i>15)
System.out.println("YES");
else
System.out.println("no");
}catch(NumberFormatException e){
System.out.println("no");
}
}}
只写了加法其他还没实现。其他的功能在上面添加就行了。刚学java各位见笑了。请多指教。
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
import javax.swing.*;
//import java.swing.event.*;
import java.awt.event.*;
import java.awt.*;public class Calculator
extends JFrame {
private JButton[] bts = null;
private String[] btNames = {
"CE", "C", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0",
"+", "-", "*", "/", "=", "Sqrt", "1/X", "B","."}; private JLabel input = new JLabel("");
private JLabel result = new JLabel("");
private JLabel lInput=new JLabel("input: ");
private JLabel lResult = new JLabel("result: ");
private static final int ADD = 12; //jia
private static final int REDUCE = 13; //jian
private static final int MULTIPLICATION = 14; //cheng
private static final int DIV = 15; //chu
private static final int RESULT = 16; //jieguo
private static final int SQRT = 17; //pingfang
private static final int RECIPROCAL = 18; //daoshu
private static final int BINARY = 19; //erjinzhi
private Container container;
private GridBagLayout layout;
private GridBagConstraints constraints;
private StringBuffer sb = new StringBuffer();
public Calculator() {
super("Calculator");
setSize(400, 200);
setLocation(200, 150);
setVisible(true);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
container = getContentPane();
layout = new GridBagLayout();
container.setLayout(layout);
constraints = new GridBagConstraints();
addComponent(lInput, 0, 0, 1, 1);
addComponent(input, 0, 1, 10, 1);
addComponent(lResult, 1, 0, 1, 1);
addComponent(result, 1, 1, 10, 1);
bts = new JButton[btNames.length];
for (int i = 0; i < btNames.length; i++) {
bts[i] = new JButton(btNames[i]);
if (i < 2)
addComponent(bts[i], 3, i + 5, 1, 1);
else if (i > 1 && i < 9)
addComponent(bts[i], 4, i - 2, 1, 1);
else if (i > 8 && i < 16)
addComponent(bts[i], 5, i - 9, 1, 1);
else if (i > 15)
addComponent(bts[i], 6, i - 16, 1, 1);
bts[i].addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) { JButton bt = (JButton) e.getSource();
String btName = bt.getLabel().trim();
int flag = indexButton(btName);
//is nummber button if (((flag > 1 && flag < 12)||flag==20) && sb.length() < 20) {
sb.append(btName);
input.setText(sb.toString()); }
else {
String rs="";
switch (flag) {
case Calculator.ADD:
rs=addDo();break;
case Calculator.REDUCE:
rs=rdeDo();break;
case Calculator.MULTIPLICATION:
rs=mltDo();break;
case Calculator.DIV:
rs=divDo();break;
case Calculator.RESULT:
rs=resultDo();break;
case Calculator.SQRT:
rs=sqrtDo();break;
case Calculator.RECIPROCAL:
rs=rpcDo();break;
case Calculator.BINARY:
rs=bayDo();
}
sb=new StringBuffer();
result.setText(rs);
} }
}
); } setVisible(true);
}//jia
private String addDo() {
float sum = 0;
float old = 0;
float now = 0;
String sOldSum = result.getText();
String sNum = input.getText();
input.setText("");
old = check(sOldSum);
now = check(sNum);
sum=old+now;
return String.valueOf(sum);
}//jian
private String rdeDo() {
return null;
}//cheng
private String mltDo() {
return null;
}//chu
private String divDo() {
return null;
}//pingfang
private String sqrtDo() {
return null;
}//daoshu
private String rpcDo() {
return null;
}//dengyu
private String resultDo() {
return null;
}//erjinzhi
private String bayDo() {
return null;
} private int indexButton(String name) {
for (int i = 0; i < btNames.length; i++) {
if (name.equals(btNames[i])) {
return i;
}
}
return -1;
}
private float check(String sNum){
float num=0;
if(sNum!=null&&!sNum.equals("")){
num=Float.parseFloat(sNum);
}
return num;
}
private void addComponent(Component component, int row, int column, int width,
int height) {
constraints.gridx = column;
constraints.gridy = row; constraints.gridwidth = width;
constraints.gridheight = height; layout.setConstraints(component, constraints);
container.add(component);
} public static void main(String args[]) {
// new Calculator().show();
String s="FAasdfj8d";
String temp = s.substring(s.length()-2, s.length());
try{
int i = Integer.parseInt(temp);
if(i>15)
System.out.println("YES");
else
System.out.println("no");
}catch(NumberFormatException e){
System.out.println("no");
}
}}
只写了加法其他还没实现。其他的功能在上面添加就行了。刚学java各位见笑了。请多指教。
解决方案 »
- 我的Socket程序执行后 网络居然ping不通了!!
- 关于JAVA的输入输出
- 输入一个数组,怎样画出坐标系,并且每相邻的几个点用不同颜色表示?(求源码)
- 关于 手机垃圾信息屏蔽软件设计
- 救急```````````
- java里面的String 类型字符串有长度限制吗?
- 请大侠解决一下菜鸟问题,谢谢
- 各位用过JMF的老兄,当播放网络上的视频文件时,会在临时文件夹中拼命的生成文件,怎么办?
- 有哪个大哥大姐知道java中StringReader()的用法与意义。
- 我学java,已经看了《thinking in java》,编了一些程序,现在该看什么书呢?大家推荐一下
- JAVA中如何处理打印机问题?
- 来者有分,初学者.
import java.awt.event.*;
import javax.swing.*;public class Calculator
{
public static void main(String[] args)
{
CalculatorFrame frame = new CalculatorFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}/**
A frame with a calculator panel.
*/
class CalculatorFrame extends JFrame
{
public CalculatorFrame()
{
setTitle("Calculator"); Container contentPane = getContentPane();
CalculatorPanel panel = new CalculatorPanel();
contentPane.add(panel);
pack();
}
}
/**
A panel with calculator buttons and a result display.
*/
class CalculatorPanel extends JPanel
{
public CalculatorPanel()
{
setLayout(new BorderLayout()); result = 0;
lastCommand = "=";
start = true;
// add the display display = new JLabel("0");
add(display, BorderLayout.NORTH);
ActionListener insert = new InsertAction();
ActionListener command = new CommandAction(); // add the buttons in a 4 x 4 grid panel = new JPanel();
panel.setLayout(new GridLayout(4, 4)); addButton("7", insert);
addButton("8", insert);
addButton("9", insert);
addButton("/", command); addButton("4", insert);
addButton("5", insert);
addButton("6", insert);
addButton("*", command); addButton("1", insert);
addButton("2", insert);
addButton("3", insert);
addButton("-", command); addButton("0", insert);
addButton(".", insert);
addButton("=", command);
addButton("+", command); add(panel, BorderLayout.CENTER);
} /**
Adds a button to the center panel.
@param label the button label
@param listener the button listener
*/
private void addButton(String label, ActionListener listener)
{
JButton button = new JButton(label);
button.addActionListener(listener);
panel.add(button);
} /**
This action inserts the button action string to the
end of the display text.
*/
private class InsertAction implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
String input = event.getActionCommand();
if (start)
{
display.setText("");
start = false;
}
display.setText(display.getText() + input);
}
} /**
This action executes the command that the button
action string denotes.
*/
private class CommandAction implements ActionListener
{
public void actionPerformed(ActionEvent evt)
{
String command = evt.getActionCommand(); if (start)
{
if (command.equals("-"))
{
display.setText(command);
start = false;
}
else
lastCommand = command;
}
else
{
calculate(Double.parseDouble(display.getText()));
lastCommand = command;
start = true;
}
}
} /**
Carries out the pending calculation.
@param x the value to be accumulated with the prior result.
*/
public void calculate(double x)
{
if (lastCommand.equals("+")) result += x;
else if (lastCommand.equals("-")) result -= x;
else if (lastCommand.equals("*")) result *= x;
else if (lastCommand.equals("/")) result /= x;
else if (lastCommand.equals("=")) result = x;
display.setText("" + result);
}
private JLabel display;
private JPanel panel;
private double result;
private String lastCommand;
private boolean start;
}