📄 mframe.java~355~
字号:
package calc;
import java.lang.Double;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.jbcl.layout.*;
import javax.swing.border.*;
import java.awt.datatransfer.*;
import com.borland.dbswing.*;//剪切板用的
import java.text.DecimalFormat;//分组格式化
import javax.swing.JOptionPane;
class MFrame extends JFrame implements ClipboardOwner,KeyListener,ActionListener{
double linshi; //按+,-,*,/后把之前Text里内容以double类型存储起来
int flag; //识别按了+,-,*哪一个
String memorys; //寄存器
boolean flagdot = false; //判断是否按了"."
boolean flagchuli = false; //判断是否按了+,-,*,/
boolean Lock = false; //如果使用1/x功能x为0的时候缩定所有输入按钮
boolean FZ = false;//判断分组了没
Clipboard clipboard; //剪贴板
JPanel contentPane;
XYLayout xYLayout1 = new XYLayout();
JTextField Text = new JTextField();
JButton MC = new JButton();
JButton MR = new JButton();
JButton MS = new JButton();
JButton MJ = new JButton();
JLabel Mshow = new JLabel();
Border border1;
JButton BaSp = new JButton();
JButton CE = new JButton();
JButton C = new JButton();
JButton Sever = new JButton();
JButton Five = new JButton();
JButton One = new JButton();
JButton Zero = new JButton();
JButton Four = new JButton();
JButton Eight = new JButton();
JButton Two = new JButton();
JButton JJ = new JButton();
JButton Nine = new JButton();
JButton Six = new JButton();
JButton Three = new JButton();
JButton Dot = new JButton();
JButton Sqrt = new JButton();
JButton Baifen = new JButton();
JButton Fen = new JButton();
JButton Deng = new JButton();
JButton Chu = new JButton();
JButton Chen = new JButton();
JButton Jian = new JButton();
JButton Jia = new JButton();
Border border2;
Border border3;
Border border4;
Border border5;
Border border6;
Border border7;
Border border8;
Border border9;
JMenuBar MainMenu = new JMenuBar();
JMenu Edit = new JMenu();
JMenuItem Copyx = new JMenuItem();
JMenuItem Pastex = new JMenuItem();
JMenu View = new JMenu();
JMenu Help = new JMenu();
JMenuItem Aboutx = new JMenuItem();
JMenuItem Fenzux = new JMenuItem();
//Construct the frame
public MFrame() {
addKeyListener(this); //注册监听
this.setFocusable(true); //获得焦点,否则无法接受键盘输入
Copyx.addActionListener(new CopyListener()); //复制按钮事件处理
Pastex.addActionListener(new PasteListener()); //粘贴按钮事件处理
Fenzux.addActionListener(new FenzuListener());//分组事件
Aboutx.addActionListener(new AboutListener());//关于
clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); //获得系统剪贴板
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch (Exception e) {
e.printStackTrace();
}
}
public void actionPerformed(ActionEvent a) {}
////实现keylistener的3个方法
public void keyPressed(KeyEvent e){
if(e.getKeyCode()>=48 && e.getKeyCode()<=57)
Shuru(e.getKeyCode()-48);
if(e.getKeyCode()>=96 && e.getKeyCode()<=105)
Shuru(e.getKeyCode()-96);
if(e.getKeyCode()==8)
BaSp.doClick();
if(e.getKeyCode()==106)
Chen.doClick();
if(e.getKeyCode()==107)
Jia.doClick();
if(e.getKeyCode()==109)
Jian.doClick();
if(e.getKeyCode()==110)
Dot.doClick();
if(e.getKeyCode()==111)
Chu.doClick();
}
public void keyReleased(KeyEvent e){}
public void keyTyped(KeyEvent e){}
public void jbInit() throws Exception {
contentPane = (JPanel)this.getContentPane();
border1 = BorderFactory.createCompoundBorder(BorderFactory.
createBevelBorder(BevelBorder.
LOWERED, Color.white, Color.white, new Color(103, 101, 98),
new Color(148, 145, 140)), BorderFactory.createEmptyBorder(6, 6, 6, 6));
border2 = BorderFactory.createBevelBorder(BevelBorder.RAISED, Color.white,
Color.white,
new Color(103, 101, 98),
new Color(148, 145, 140));
border3 = BorderFactory.createBevelBorder(BevelBorder.RAISED, Color.white,
Color.white,
new Color(103, 101, 98),
new Color(148, 145, 140));
border4 = BorderFactory.createBevelBorder(BevelBorder.RAISED, Color.white,
Color.white,
new Color(103, 101, 98),
new Color(148, 145, 140));
border5 = BorderFactory.createBevelBorder(BevelBorder.RAISED, Color.white,
Color.white,
new Color(103, 101, 98),
new Color(148, 145, 140));
border6 = BorderFactory.createBevelBorder(BevelBorder.RAISED, Color.white,
Color.white,
new Color(103, 101, 98),
new Color(148, 145, 140));
border7 = BorderFactory.createBevelBorder(BevelBorder.RAISED, Color.white,
Color.white,
new Color(103, 101, 98),
new Color(148, 145, 140));
border8 = BorderFactory.createEmptyBorder(6,6,6,6);
border9 = BorderFactory.createBevelBorder(BevelBorder.RAISED,Color.white,Color.white,new Color(103, 101, 98),new Color(148, 145, 140));
contentPane.setLayout(xYLayout1);
this.setJMenuBar(MainMenu);
this.setResizable(false);
this.setSize(new Dimension(276, 254));
this.setTitle("计算器");
Text.setBackground(Color.white);
Text.setDoubleBuffered(false);
Text.setOpaque(true);
Text.setDisabledTextColor(new Color(212, 208, 200));
Text.setEditable(false);
Text.setSelectionEnd(0);
Text.setSelectionStart(0);
Text.setText("0.");
Text.setColumns(0);
Text.setHorizontalAlignment(SwingConstants.RIGHT);
MC.setFont(new java.awt.Font("Dialog", 0, 11));
MC.setForeground(Color.red);
MC.setBorder(border3);
MC.setActionCommand("jButton1");
MC.setFocusPainted(false);
MC.setText("MC");
MC.addActionListener(new MFrame_MC_actionAdapter(this));
MC.addKeyListener(this);
MR.setForeground(Color.red);
MR.setBorder(border3);
MR.setFocusPainted(false);
MR.setText("MR");
MR.addActionListener(new MFrame_MR_actionAdapter(this));
MR.addKeyListener(this);
MS.setForeground(Color.red);
MS.setBorder(border3);
MS.setFocusPainted(false);
MS.setText("MS");
MS.addActionListener(new MFrame_MS_actionAdapter(this));
MS.addKeyListener(this);
MJ.setForeground(Color.red);
MJ.setBorder(border3);
MJ.setFocusPainted(false);
MJ.setText("M+");
MJ.addActionListener(new MFrame_MJ_actionAdapter(this));
MJ.addKeyListener(this);
Mshow.setBorder(border1);
Mshow.setHorizontalAlignment(SwingConstants.CENTER);
Mshow.setText("");
BaSp.setForeground(Color.red);
BaSp.setBorder(border7);
BaSp.setDebugGraphicsOptions(0);
BaSp.setDoubleBuffered(false);
BaSp.setToolTipText("");
BaSp.setFocusPainted(false);
BaSp.setText("Backspace");
BaSp.addActionListener(new MFrame_BaSp_actionAdapter(this));
BaSp.addKeyListener(this);
CE.setForeground(Color.red);
CE.setBorder(border7);
CE.setFocusPainted(false);
CE.setText("CE");
CE.addActionListener(new MFrame_CE_actionAdapter(this));
CE.addKeyListener(this);
C.setForeground(Color.red);
C.setBorder(border7);
C.setFocusPainted(false);
C.setText("C");
C.addActionListener(new MFrame_C_actionAdapter(this));
C.addKeyListener(this);
Sever.setForeground(Color.blue);
Sever.setBorder(border4);
Sever.setToolTipText("");
Sever.setActionCommand("7");
Sever.setFocusPainted(false);
Sever.setSelected(false);
Sever.setText("7");
Sever.addActionListener(new MFrame_Sever_actionAdapter(this));
Sever.addKeyListener(this);
Five.setForeground(Color.blue);
Five.setBorder(border4);
Five.setFocusPainted(false);
Five.setText("5");
Five.addActionListener(new MFrame_Five_actionAdapter(this));
Five.addKeyListener(this);
One.setForeground(Color.blue);
One.setBorder(border4);
One.setFocusPainted(false);
One.setText("1");
One.addActionListener(new MFrame_One_actionAdapter(this));
One.addKeyListener(this);
Zero.setForeground(Color.blue);
Zero.setBorder(border4);
Zero.setFocusPainted(false);
Zero.setText("0");
Zero.addActionListener(new MFrame_Zero_actionAdapter(this));
Zero.addKeyListener(this);
Four.setForeground(Color.blue);
Four.setBorder(border4);
Four.setFocusPainted(false);
Four.setText("4");
Four.addActionListener(new MFrame_Four_actionAdapter(this));
Four.addKeyListener(this);
Eight.setForeground(Color.blue);
Eight.setBorder(border4);
Eight.setFocusPainted(false);
Eight.setText("8");
Eight.addActionListener(new MFrame_Eight_actionAdapter(this));
Eight.addKeyListener(this);
Two.setForeground(Color.blue);
Two.setBorder(border4);
Two.setFocusPainted(false);
Two.setText("2");
Two.addActionListener(new MFrame_Two_actionAdapter(this));
Two.addKeyListener(this);
JJ.setForeground(Color.blue);
JJ.setAlignmentY( (float) 0.5);
JJ.setBorder(border2);
JJ.setFocusPainted(false);
JJ.setText("+/-");
JJ.addActionListener(new MFrame_JJ_actionAdapter(this));
JJ.addKeyListener(this);
Nine.setForeground(Color.blue);
Nine.setBorder(border5);
Nine.setFocusPainted(false);
Nine.setText("9");
Nine.addActionListener(new MFrame_Nine_actionAdapter(this));
Nine.addKeyListener(this);
Six.setForeground(Color.blue);
Six.setBorder(border5);
Six.setFocusPainted(false);
Six.setText("6");
Six.addActionListener(new MFrame_Six_actionAdapter(this));
Six.addKeyListener(this);
Three.setForeground(Color.blue);
Three.setBorder(border5);
Three.setFocusPainted(false);
Three.setText("3");
Three.addActionListener(new MFrame_Three_actionAdapter(this));
Three.addKeyListener(this);
Dot.setForeground(Color.blue);
Dot.setBorder(border5);
Dot.setFocusPainted(false);
Dot.setText(".");
Dot.addActionListener(new MFrame_Dot_actionAdapter(this));
Dot.addKeyListener(this);
Baifen.setForeground(Color.blue);
Baifen.setBorder(border7);
Baifen.setFocusPainted(false);
Baifen.setText("%");
Baifen.addActionListener(new MFrame_Baifen_actionAdapter(this));
Baifen.addKeyListener(this);
Fen.setForeground(Color.blue);
Fen.setBorder(border7);
Fen.setFocusPainted(false);
Fen.setText("1/x");
Fen.addActionListener(new MFrame_Fen_actionAdapter(this));
Fen.addKeyListener(this);
Deng.setForeground(Color.red);
Deng.setBorder(border7);
Deng.setFocusPainted(false);
Deng.setText("=");
Deng.addActionListener(new MFrame_Deng_actionAdapter(this));
Deng.addKeyListener(this);
Sqrt.setForeground(Color.blue);
Sqrt.setBorder(border7);
Sqrt.setFocusPainted(false);
Sqrt.setText("sqrt");
Sqrt.addActionListener(new MFrame_Sqrt_actionAdapter(this));
Sqrt.addKeyListener(this);
Chu.setForeground(Color.red);
Chu.setBorder(border6);
Chu.setFocusPainted(false);
Chu.setText("/");
Chu.addActionListener(new MFrame_Chu_actionAdapter(this));
Chu.addKeyListener(this);
Chen.setForeground(Color.red);
Chen.setBorder(border6);
Chen.setToolTipText("");
Chen.setFocusPainted(false);
Chen.setText("*");
Chen.addActionListener(new MFrame_Chen_actionAdapter(this));
Chen.addKeyListener(this);
Jian.setForeground(Color.red);
Jian.setBorder(border6);
Jian.setFocusPainted(false);
Jian.setText("-");
Jian.addActionListener(new MFrame_Jian_actionAdapter(this));
Jian.addKeyListener(this);
Jia.setForeground(Color.red);
Jia.setBorder(border6);
Jia.setFocusPainted(false);
Jia.setText("+");
Jia.addActionListener(new MFrame_Jia_actionAdapter(this));
Jia.addKeyListener(this);
contentPane.setAlignmentX( (float) 0.5);
contentPane.setActionMap(null);
Edit.setText("编辑");
Copyx.setText("复制");
Copyx.setAccelerator(javax.swing.KeyStroke.getKeyStroke('C', java.awt.event.KeyEvent.CTRL_MASK, false));
Pastex.setText("粘贴");
Pastex.setAccelerator(javax.swing.KeyStroke.getKeyStroke('V', java.awt.event.KeyEvent.CTRL_MASK, false));
View.setText("查看");
Help.setText("帮助");
Aboutx.setText("关于计算器");
Fenzux.setText("数字分组");
contentPane.add(Text, new XYConstraints(11, 12, 249, 20));
contentPane.add(Dot, new XYConstraints(140, 172, 37, 29));
contentPane.add(Baifen, new XYConstraints(224, 105, 37, 29));
contentPane.add(One, new XYConstraints(56, 139, 37, 29));
contentPane.add(Jian, new XYConstraints(182, 139, 37, 29));
contentPane.add(MC, new XYConstraints(10, 72, 37, 29));
contentPane.add(Deng, new XYConstraints(224, 172, 37, 29));
contentPane.add(Zero, new XYConstraints(56, 172, 37, 29));
contentPane.add(Chen, new XYConstraints(182, 105, 37, 29));
contentPane.add(Three, new XYConstraints(140, 139, 37, 29));
contentPane.add(Sever, new XYConstraints(56, 72, 37, 29));
contentPane.add(JJ, new XYConstraints(98, 172, 37, 29));
contentPane.add(Two, new XYConstraints(98, 139, 37, 29));
contentPane.add(MJ, new XYConstraints(10, 172, 37, 29));
contentPane.add(MR, new XYConstraints(10, 105, 37, 29));
contentPane.add(Five, new XYConstraints(98, 105, 37, 29));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -