
简易的计算器代码如下,请参照:
import javaawtBorderLayout;import javaawtGridLayout;
import javaawteventActionEvent;
import javaawteventActionListener;
import javaawteventKeyAdapter;
import javaawteventKeyEvent;
import javaxswingJButton;
import javaxswingJFrame;
import javaxswingJPanel;
import javaxswingJTextField;
/
计算器类
@author Administrator
/
public class Calculator extends JFrame implements ActionListener {
private static final long serialVersionUID = 3868243398506940702L;
// 文本框
private JTextField result;
// 按钮数组
private JButton[] buttons;
// 按钮文本
private final String[] characters = { "7", "8", "9", "/", "4", "5", "6",
"", "1", "2", "3", "-", "0", "", "=", "+" };
// 是否为第一个输入的数字
private boolean isFirstDigit = true;
// 运算结果
private double resultNum = 00;
// 运算符
private String operator = "=";
public Calculator(String title) {
// 设置标题栏
super(title);
// 初始化各组件
init();
// 注册各组件监听器
registerListener();
// 显示窗体
setVisible(true);
}
/
初始化各组件
/
private void init() {
// 常用属性初始化
setSize(220, 200);
setResizable(false);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
/ 文本框对象初始化 /
result = new JTextField("0");
// 文本右对齐
resultsetHorizontalAlignment(JTextFieldRIGHT);
// 设置是否可编辑
resultsetEditable(false);
/ 按钮初始化 /
buttons = new JButton[characterslength];
for (int i = 0; i < buttonslength; i++) {
buttons[i] = new JButton(characters[i]);
buttons[i]setFocusable(false); // 不允许按钮定位焦点
}
/ 将文本框与按钮添加到窗体中 /
add(result, BorderLayoutNORTH);
JPanel pnl = new JPanel(new GridLayout(4, 4, 5, 5));
for (JButton jButton : buttons) {
pnladd(jButton);
}
add(pnl);
thisgetContentPane()setFocusable(true);
}
/
注册监听器
/
private void registerListener() {
for (JButton jButton : buttons) {
jButtonaddActionListener(this);
}
// 注册键盘事件
thisgetContentPane()addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
String text = StringvalueOf(egetKeyChar());
if (CharacterisDigit(textcharAt(0)) || ""equals(text)) { // 数字或小数点
handleNumber(text);
} else if ("+-/="indexOf(text) != -1) { // 运算符
handleOperator(text);
} else if (egetKeyCode() == 8) { // 退格键
String tmp = resultgetText()trim();
if (tmplength() == 1) {
resultsetText("0");
isFirstDigit = true;
} else {
resultsetText(tmpsubstring(0, tmplength() - 1));
}
}
}
});
}
@Override
public void actionPerformed(ActionEvent e) {
JButton btn = (JButton) egetSource();
String text = btngetText()trim();
if (CharacterisDigit(textcharAt(0)) || ""equals(text)) { // 处理数字和小数点
handleNumber(text);
} else { // 处理运算符
handleOperator(text);
}
}
/
处理数字和小数点
@param text
/
private void handleNumber(String text) {
if (isFirstDigit) { // 第一次输入
if (""equals(text)) {
thisresultsetText("0");
} else {
thisresultsetText(text);
}
} else if ("0"equals(text) && "0"equals(thisresultgetText())) {
isFirstDigit = true;
return;
} else if (""equals(text) && thisresultgetText()indexOf("") == -1) {
thisresultsetText(thisresultgetText() + "");
} else if (!""equals(text)) {
thisresultsetText(thisresultgetText() + text);
}
isFirstDigit = false;
}
/
处理运算符
@param text
/
private void handleOperator(String text) {
switch (operator) { // 处理各项运算 适用于JDK17版本的
case "+":
resultNum += DoubleparseDouble(thisresultgetText());
break;
case "-":
resultNum -= DoubleparseDouble(thisresultgetText());
break;
case "":
resultNum = DoubleparseDouble(thisresultgetText());
break;
case "/":
resultNum /= DoubleparseDouble(thisresultgetText());
break;
case "=":
resultNum = DoubleparseDouble(thisresultgetText());
break;
}
// 将文本框的值修改为运算结果
thisresultsetText(StringvalueOf(resultNum));
// 将点击的运算符放入operator保存
operator = text;
// 下一个数字第一次点击
isFirstDigit = true;
}
public static void main(String[] args) {
new Calculator("My Calculator");
}
}
运行结果如下:
修改后的代码,改了speed:
import javaappletApplet;import javaawtColor;
import javaawtFont;
import javaawtGraphics;
import javautilRandom;
public class Circ extends Applet {
int x, y; // 圆的位置
int W_H; // 圆的大小
int R, G, B; // 圆的颜色
int i;
public int speed = 10; // 因为没有嵌入到网页中,没有值传入,改为固定值即可。
Random rd = new Random();
public void init() {
thisresize(1024, 768);// 初始窗口大小
}
public void paint(Graphics g) {
i = 0;// 初始化半径
while (i <= 75) {
W_H = i;
gsetColor(Colorwhite);
gfillRect(0, 0, thisgetWidth(), thisgetHeight()); // 抹除先前画的圆--画一个窗口大小的白色矩形
Color color = new Color(R, G, B);
gsetColor(color);
gfillOval(x - i, y - i, i 2, i 2);
try {
Threadsleep(speed); // 设置两圆之间延迟
} catch (InterruptedException e) {
eprintStackTrace();
}
i++;
// 擦出重新画
if (i == 75) {
i = 0;
// x = rdnextInt(thisgetWidth() - 50);
// y = rdnextInt(thisgetHeight()- 50);
x = (int) (Mathrandom() (thisgetWidth() - 50) + 50);
y = (int) (Mathrandom() (thisgetHeight() - 50) + 50);
speed = (int) (Mathrandom() 60); // 控制变化速度
y = rdnextInt(thisgetHeight() - 50);
R = rdnextInt(255);// 红色随机码 --0到255的随机数
G = rdnextInt(255);// 绿色随机码
B = rdnextInt(255);// 蓝色随机码
}
}
Systemexit(0);
}
}
以上就是关于java程序,用图形实现乘除运算全部的内容,包括:java程序,用图形实现乘除运算、java applet程序没错 可是编译出现未初始化程序怎么回事啊、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)