📄 counter.java
字号:
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import javax.swing.*;
public class Counter extends Frame
{
//声明四个面板的布局
GridLayout gl1,gl2,gl3,gl4;
Panel p0,p1,p2,p3,p4; //声明四个面板
JTextField tf1; //输入文本框
TextField tf2;
Button bt0,bt1,bt2,bt3,bt4,bt5,bt6,bt7,bt8,bt9,bt10,bt11,bt12,bt13,bt14,bt15,bt16,bt17,bt18,bt19,bt20,bt21,bt22,bt23,bt24,bt25,bt26,bt27,bt28,bt29,bt30,bt31,bt32,bt33,bt34,bt35,bt36,bt37,bt38;
StringBuffer str;//显示屏所显示的字符串
double x,y;//x和y都是运算数
int z;//Z表示单击了那一个运算符.0表示"+",1表示"-",2表示"*",3表示"/"
static double m;//记忆的数字
public Counter()
{
gl1=new GridLayout(1,4,10,0);//实例化四个面板的布局
gl2=new GridLayout(4,1,0,15); //GridLayout(行数,列数,组件间水平间距,组件间垂直间距)
gl3=new GridLayout(4,5,10,15);
gl4=new GridLayout(2,6,10,15);
tf1=new JTextField(27);//显示屏
tf1.setHorizontalAlignment(JTextField.LEFT); //?输入文本框为水平方向,在文本框右侧输出
tf1.setEnabled(false); //是否让部件功能有效,在无效情况下部件变灰
tf1.setText("0");
tf2=new TextField(10);//显示记忆的索引值
tf2.setEditable(false); //? isEditable() 判断输入框是否可编辑,非编辑状态下,不能通过键盘操作输入数据。
//实例化所有按钮、设置其前景色并注册监听器
bt0=new Button("Backspace");
bt0.setForeground(Color.red);
bt0.addActionListener(new Bt());
bt1=new Button("CE");
bt1.setForeground(Color.red);
bt1.addActionListener(new Bt());
bt2=new Button("C");
bt2.setForeground(Color.red);
bt2.addActionListener(new Bt());
bt3=new Button("MC");
bt3.setForeground(Color.red);
bt3.addActionListener(new Bt());
bt4=new Button("MR");
bt4.setForeground(Color.red);
bt4.addActionListener(new Bt());
bt5=new Button("MS");
bt5.setForeground(Color.red);
bt5.addActionListener(new Bt());
bt6=new Button("M+");
bt6.setForeground(Color.red);
bt6.addActionListener(new Bt());
bt7=new Button("7");
bt7.setForeground(Color.blue);
bt7.addActionListener(new Bt());
bt8=new Button("8");
bt8.setForeground(Color.blue);
bt8.addActionListener(new Bt());
bt9=new Button("9");
bt9.setForeground(Color.blue);
bt9.addActionListener(new Bt());
bt10=new Button("/");
bt10.setForeground(Color.gray);
bt10.addActionListener(new Bt());
bt11=new Button("sqrt");
bt11.setForeground(Color.blue);
bt11.addActionListener(new Bt());
bt12=new Button("4");
bt12.setForeground(Color.blue);
bt12.addActionListener(new Bt());
bt13=new Button("5");
bt13.setForeground(Color.blue);
bt13.addActionListener(new Bt());
bt14=new Button("6");
bt14.setForeground(Color.blue);
bt14.addActionListener(new Bt());
bt15=new Button("*");
bt15.setForeground(Color.gray);
bt15.addActionListener(new Bt());
bt16=new Button("%");
bt16.setForeground(Color.blue);
bt16.addActionListener(new Bt());
bt17=new Button("1");
bt17.setForeground(Color.blue);
bt17.addActionListener(new Bt());
bt18=new Button("2");
bt18.setForeground(Color.blue);
bt18.addActionListener(new Bt());
bt19=new Button("3");
bt19.setForeground(Color.blue);
bt19.addActionListener(new Bt());
bt20=new Button("-");
bt20.setForeground(Color.gray);
bt20.addActionListener(new Bt());
bt21=new Button("1/X");
bt21.setForeground(Color.blue);
bt21.addActionListener(new Bt());
bt22=new Button("0");
bt22.setForeground(Color.blue);
bt22.addActionListener(new Bt());
bt23=new Button("+/-");
bt23.setForeground(Color.blue);
bt23.addActionListener(new Bt());
bt24=new Button(".");
bt24.setForeground(Color.blue);
bt24.addActionListener(new Bt());
bt25=new Button("+");
bt25.setForeground(Color.gray);
bt25.addActionListener(new Bt());
bt26=new Button("=");
bt26.setForeground(Color.gray);
bt26.addActionListener(new Bt());
bt27=new Button("a");
bt27.setForeground(Color.blue);
bt27.addActionListener(new Bt());
bt28=new Button("b");
bt28.setForeground(Color.blue);
bt28.addActionListener(new Bt());
bt29=new Button("c");
bt29.setForeground(Color.blue);
bt29.addActionListener(new Bt());
bt30=new Button("d");
bt30.setForeground(Color.blue);
bt30.addActionListener(new Bt());
bt31=new Button("e");
bt31.setForeground(Color.blue);
bt31.addActionListener(new Bt());
bt32=new Button("f");
bt32.setForeground(Color.blue);
bt32.addActionListener(new Bt());
bt33=new Button("2to10");
bt33.setForeground(Color.blue);
bt33.addActionListener(new Bt());
bt34=new Button("8to10");
bt34.setForeground(Color.blue);
bt34.addActionListener(new Bt());
bt35=new Button("16to10");
bt35.setForeground(Color.blue);
bt35.addActionListener(new Bt());
bt36=new Button("10to2");
bt36.setForeground(Color.blue);
bt36.addActionListener(new Bt());
bt37=new Button("10to8");
bt37.setForeground(Color.blue);
bt37.addActionListener(new Bt());
bt38=new Button("10to16");
bt38.setForeground(Color.blue);
bt38.addActionListener(new Bt());
//实例化五个面板
p0=new Panel();
p1=new Panel();
p2=new Panel();
p3=new Panel();
p4=new Panel();
//创建一个空字符串缓冲区
str=new StringBuffer();
//添加面板p0中的组件和设置其在框架中的位置和大小
p0.add(tf1);
p0.setBounds(10,25,300,40); //(横坐标,纵坐标,宽度,高度)
//添加面板p1中的组件和设置其在框架中的位置和大小
p1.setLayout(gl1);
p1.add(tf2);
p1.add(bt0);
p1.add(bt1);
p1.add(bt2);
p1.setBounds(10,65,300,25);
//添加面板p2中的组件并设置其的框架中的位置和大小
p2.setLayout(gl2);
p2.add(bt3);
p2.add(bt4);
p2.add(bt5);
p2.add(bt6);
p2.setBounds(10,110,40,150);
//添加面板p3中的组件并设置其在框架中的位置和大小
p3.setLayout(gl3);//设置p3的布局
p3.add(bt7);
p3.add(bt8);
p3.add(bt9);
p3.add(bt10);
p3.add(bt11);
p3.add(bt12);
p3.add(bt13);
p3.add(bt14);
p3.add(bt15);
p3.add(bt16);
p3.add(bt17);
p3.add(bt18);
p3.add(bt19);
p3.add(bt20);
p3.add(bt21);
p3.add(bt22);
p3.add(bt23);
p3.add(bt24);
p3.add(bt25);
p3.add(bt26);
p3.setBounds(60,110,250,150);
//添加面板p4中的组件并设置其在框架中的位置和大小
p4.setLayout(gl4);//设置p4的布局
p4.add(bt27);
p4.add(bt28);
p4.add(bt29);
p4.add(bt30);
p4.add(bt31);
p4.add(bt32);
p4.add(bt33);
p4.add(bt34);
p4.add(bt35);
p4.add(bt36);
p4.add(bt37);
p4.add(bt38);
p4.setBounds(10,275,301,70);
//设置框架中的布局为空布局并添加4个面板
setLayout(null);
add(p0);
add(p1);
add(p2);
add(p3);
add(p4);
setResizable(false);//禁止调整框架的大小
//匿名类关闭窗口
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e1)
{
System.exit(0);
}
});
setBackground(Color.black); //设置部件的背景
setBounds(100,100,320,350);
setVisible(true); //让窗体可见
}
//构造监听器
class Bt implements ActionListener
{
public void actionPerformed(ActionEvent e2)
{
try
{
String label=e2.getActionCommand();//取得事件按钮的标签
if(label.equals("a"))//e2.getSource()==bt27
{
String s=tf1.getText();
if(s.equals("0"))
{
tf1.setText("a");
}
else
{
tf1.setText(s+"a");
}
}
else if(label.equals("b"))
{
String s=tf1.getText();
if(s.equals("0"))
{
tf1.setText("b");
}
else
{
tf1.setText(s+"b");
}
}
else if(label.equals("c"))
{
String s=tf1.getText();
if(s.equals("0"))
{
tf1.setText("c");
}
else
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -