⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 counter.java

📁 设计一个复杂的计算器
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
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 + -