import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Calculator extends JFrame implements ActionListener{
JLabel fval,sval;
JTextField tf1,tf2;
JButton add,subtract,multiply,divide,compute,reset;
String s="";
JPanel jp = new JPanel();
Calculator(){
jp.setLayout(new GridLayout(5,2));
fval=new JLabel("First Value: ");
sval=new JLabel("Second Value: ");
tf1=new JTextField();
tf2=new JTextField();
add=new JButton("ADD");
subtract=new JButton("SUBTRACT");
multiply=new JButton("MULTIPLY");
divide=new JButton("DIVIDE");
compute=new JButton("COMPUTE");
reset=new JButton("RESET");
jp.add(fval);
jp.add(tf1);
jp.add(sval);
jp.add(tf2);
jp.add(add);
jp.add(subtract);
jp.add(multiply);
jp.add(divide);
jp.add(compute);
jp.add(reset);
add.addActionListener(this);
subtract.addActionListener(this);
multiply.addActionListener(this);
divide.addActionListener(this);
compute.addActionListener(this);
reset.addActionListener(this);
this.setTitle("Calculator");
this.setBounds(10,10,300,300);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setResizable(false);
add(jp);
//ADD
Action addAction = new AbstractAction("ADD") {
@Override
public void actionPerformed(ActionEvent evt) {
s="ADD";
}
};
String key1 = "ADD";
add.setAction(addAction);
addAction.putValue(Action.MNEMONIC_KEY, KeyEvent.VK_A);
add.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
KeyStroke.getKeyStroke(KeyEvent.VK_A, KeyEvent.CTRL_DOWN_MASK), key1);
add.getActionMap().put(key1, addAction);
//SUBTRACT
Action subAction = new AbstractAction("SUBTRACT") {
@Override
public void actionPerformed(ActionEvent evt) {
s="SUBTRACT";
}
};
String key2 = "SUBTRACT";
subtract.setAction(subAction);
subAction.putValue(Action.MNEMONIC_KEY, KeyEvent.VK_S);
subtract.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
KeyStroke.getKeyStroke(KeyEvent.VK_S, KeyEvent.CTRL_DOWN_MASK), key2);
subtract.getActionMap().put(key2, subAction);
//MULTIPLY
Action mulAction = new AbstractAction("MULTIPLY") {
@Override
public void actionPerformed(ActionEvent evt) {
s="MULTIPLY";
}
};
String key3 = "MULTIPLY";
multiply.setAction(mulAction);
mulAction.putValue(Action.MNEMONIC_KEY, KeyEvent.VK_M);
multiply.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
KeyStroke.getKeyStroke(KeyEvent.VK_M, KeyEvent.CTRL_DOWN_MASK), key3);
multiply.getActionMap().put(key3, mulAction);
//DIVIDE
Action divAction = new AbstractAction("DIVIDE") {
@Override
public void actionPerformed(ActionEvent evt) {
s="DIVIDE";
}
};
String key4 = "DIVIDE";
divide.setAction(divAction);
divAction.putValue(Action.MNEMONIC_KEY, KeyEvent.VK_D);
divide.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
KeyStroke.getKeyStroke(KeyEvent.VK_D, KeyEvent.CTRL_DOWN_MASK), key4);
divide.getActionMap().put(key4, divAction);
}
public void Add(double n1,double n2){
JOptionPane.showMessageDialog(this, +(n1+n2), "Answer", JOptionPane.INFORMATION_MESSAGE);
}
public void Subtract(double n1,double n2){
JOptionPane.showMessageDialog(this, +(n1-n2), "Answer", JOptionPane.INFORMATION_MESSAGE);
}
public void Multiply(double n1,double n2){
JOptionPane.showMessageDialog(this, +(n1*n2), "Answer", JOptionPane.INFORMATION_MESSAGE);
}
public void Divide(double n1,double n2){
JOptionPane.showMessageDialog(this, +(n1/n2), "Answer", JOptionPane.INFORMATION_MESSAGE);
}
@Override
public void actionPerformed(ActionEvent e) {
String in=e.getActionCommand();
if(in.equals("COMPUTE")){
try {
double n1=Double.parseDouble(tf1.getText());
double n2=Double.parseDouble(tf2.getText());
if(s.equals("ADD"))
Add(n1,n2);
else if(s.equals("SUBTRACT"))
Subtract(n1,n2);
else if(s.equals("MULTIPLY"))
Multiply(n1,n2);
else if(s.equals("DIVIDE"))
Divide(n1,n2);
else if(in.equals("RESET")){
tf1.setText("");
tf2.setText("");
s="";
}else
{
s=in;
}
}
catch (NumberFormatException e1) {
compute.setSelected(true);
JOptionPane.showMessageDialog(this, "Math Error.", "Warning", JOptionPane.INFORMATION_MESSAGE);
}
}
};
public static void main(String[] args) {
new Calculator();
}
}
提前感谢!
我只需要为计算,重置和退出按钮放快捷键。
我想你把“助记符”和“加速器”搞混了。
当聚焦组件时调用“助记符”。通过使用“alt”键加上按钮上文本的下划线字符来调用操作。
键盘快捷键可提升任务的速度,并可让工作更有效率。这里提供了约 50 种比较常见和常用的 After Effects 快捷键的可下载快捷键图示。 下载获取文件AfterEffects_KeyboardShortcuts.pdf After Effects 键盘快捷键的完整列表,可见此处。
查看快捷键,在设置界面中搜索 “keymap”: 设置自己的快捷键 比如将代码变更 commit ,webstorm 默认是没有配置快捷键的,我们设置个 shift + c 。 搜索 commit : 找到操作项后,添加个新的快捷键,如果快捷键有冲突,webstorm 会有提示。 默认配置下的常用快捷键 mac book 下文的 ctrl 替换成 command 键。 查找/代替 快捷键 说明 c
Sketch 有一系列为数不多但相当实用的快捷键,他们能大大提高你的工作效率。 通用快捷键 ・control+h: 触发选区手柄 ・control+l: 触发自动参考线 ・control+g: 触发网格 ・Space: 抓手工具 ・Enter: 编辑所选图层 ・⌘+3: 滚动至所选图层 ・⌘+2: 放大所选图层 ・Z: 放大工具。按住 Z 键,用鼠标单击拖拽出一个区域放大。缩小啧使用 Z
Navicat 主窗口 键 动作 CTRL+G 设置位置文件夹 CTRL+#(# 代 表 0 至 9) 从收藏夹列表打开对象窗口 F6 命令列界面 CTRL+H 历史日志 CTRL+Q 新建查询 F12 仅显示活跃对象 常规 键 动作 CTRL+N 新建对象 SHIFT+CTRL+#(# 代 表 0 至 9) 添加收藏夹 F8 Navicat 主窗口 CTRL+TAB 或 SHIFT+CTRL+T
常规 键 动作 COMMAND-R 刷新 COMMAND-N 新建对象 COMMAND-D 设计对象 SHIFT-COMMAND-D 复制对象 OPTION-SHIFT-#(# 代表 1 至 9) 添加到收藏夹 CONTROL-SHIFT-#(# 代表 1 至 9) 打开收藏夹链接 COMMAND-} 或 COMMAND-{ 选择下一个或上一个选项卡 COMMAND-> 或 COMMAND-< 选
Chrome DevTools有几个内置的快捷键,可以节省你的日常工作的时间。 本指南提供了Chrome DevTools中每个快捷键的快速参考。虽然一些快捷方式在全局范围内可用,但其他的快捷方式用于特定的某些单个面板,并根据它可以使用的位置分解。 您还可以在提示工具中找到快捷方式。将鼠标悬停在某个元素上以显示其提示工具。如果元素有快捷方式,提示工具将会包含它。 打开开发者工具 在Google C