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

📄 popcalculatorapplet.java

📁 java弹出式计算器(改进版)
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;

/** 一个小应用程序。在该Applet中只显示一个按钮,点击该按钮后,弹出一个能计算器窗口
  * @作者:尉哲明
  * @日期:2001年5月 */

/** 定义Applet类 */
public class PopCalculatorApplet extends Applet implements ActionListener
{
	private Frame calc=new CalculatorFrame();//定义要弹出的计算器窗口

	/** init()方法,对Applet加入按钮组件 */
	public void init()
	{
		Button calcButton=new Button("Calculator");
		calcButton.addActionListener(this);
		add(calcButton);
	}// init()方法结束
	
	/** 该方法用来处理按钮事件 */
	public void actionPerformed(ActionEvent ev)
	{
		if(calc.isVisible()) 
			calc.setVisible(false);
		else  
		{
			calc.setSize(400,200);
			calc.setVisible(true);
		}
	}// actionPerformed()方法结束
}// PopCalculatorApplet类结束

/** 计算器窗口类 */
class CalculatorFrame extends Frame implements ActionListener
{
	private TextField display;
	private double arg=0;
	private String op="=";
	private boolean start=true;
	
	/** 计算器窗口类之构造方法 */	
	public CalculatorFrame()
	{
		setLayout(new BorderLayout());
		display=new TextField("0");
		display.setEditable(false);
		add(display,"North");
		
		Panel p=new Panel();
		p.setLayout(new GridLayout(4,4));
		String buttons="123+456-789*0.=/";
		
		for(int i=0;i<buttons.length();i++)
			addButton(p,buttons.substring(i,i+1));
		add(p,"Center");
		addWindowListener(new WindowHandler());
	}// CalculatorFrame()构造方法结束
	
	/** 在计算器窗口中放置按钮 */
	private void addButton(Container c,String s)
	{
		Button b=new Button(s);
		c.add(b);
		b.addActionListener(this);
	}// addButton()方法结束
	
	/** 处理计算器窗口事件的内部类定义 */
	public class WindowHandler extends WindowAdapter
	{
		/** 该方法用来关闭计算器窗口 */
		public void windowClosing(WindowEvent ev)
		{
			setVisible(false);
		}
	}//内部类WindowHandler定义结束
	
	/** 该方法用来处理计算器窗口中的按钮事件 */
	public void actionPerformed(ActionEvent ev)
	{
		String s=ev.getActionCommand();
		if ('0'<=s.charAt(0)&&s.charAt(0)<='9'||s.equals("."))
		{
			if(start) display.setText(s);
			else display.setText(display.getText()+s);
			start=false;
		}
		else
		{ 
			if(start)
			{
				if (s.equals("-"))  
				{
					display.setText(s);
					start=false;
				}
				else
				{
					op=s;
				}
			}
			else
			{
				calculate(Double.parseDouble(display.getText()));
				op=s;
				start=true;
			}
		}
	}// actionPerformed()方法结束
	
	/** calculate()方法 */
	public void calculate(double n)
	{
		if(op.equals("+")) arg+=n;	
		else if(op.equals("-")) arg-=n;
		else if(op.equals("*")) arg*=n;
		else if(op.equals("/")) arg/=n;
		else if(op.equals("=")) arg=n;
		display.setText(""+arg);
	}// calculate()方法结束
}// CalculatorFrame类结束

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -