23,404
社区成员
发帖
与我相关
我的任务
分享
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;
import java.awt.GridLayout;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TestJiSuanQi implements ActionListener{
private String op1 = "0";//运算数
private String operator = "+";//运算符
private boolean append = false;
JTextField jtf = new JTextField("",10);
public void actionPerformed(ActionEvent ae) {
String comm = ae.getActionCommand();
if("0123456789".indexOf(comm)!=-1){
if(append){
String temp = jtf.getText();
jtf.setText(temp+comm);
}else{
jtf.setText(comm);
append = true;
}
}else if(("+-*/".indexOf(comm)!=-1)){
//保存第一个数和运算符,状态转换
op1 = jtf.getText();//op1第一个数
operator = comm;
append = false;
}else if("=".equals(comm)){
String op2 = jtf.getText();//op2第二个数
double d1 = Double.parseDouble(op1);
double d2 = Double.parseDouble(op2);
if(operator.equals("+")){
d1 = d1 + d2 ;
}else if(operator.equals("-")){
d1 = d1 - d2;
}else if(operator.equals("*")){
d1 = d1 * d2;
}else {
d1 = d1 / d2;
}
jtf.setText(d1+"");
append = false;
}else if(".".equals(comm)){
String temp = jtf.getText();
if(temp.indexOf(".")==-1){
jtf.setText(temp+".");
append = true;
}
}
else if("+/-".equals(comm)){
String temp = jtf.getText();
if(temp.startsWith("-")){
jtf.setText(temp.substring(1));
}else{
jtf.setText("-"+temp);
}
append = true;
}
else if("C".equals(comm) || "CE".equals(comm)){
jtf.setText("0");
append = false;
}else if("Back".equals(comm)){
String temp = jtf.getText();
if(temp.length()>0){
temp = temp.substring(0,temp.length()-1);
jtf.setText(temp);
}
}
}
public TestJiSuanQi(){
JFrame jf = new JFrame("计算器");
JPanel jp = new JPanel();
jp.setLayout(new GridLayout(5,4));
String[] label = {"Back","CE","C","+","7","8","9","-","4","5","6","*","1","2","3","/","0","+/-",".","="};
JButton[] jb = new JButton[label.length];
for(int i=0;i<jb.length;i++){
jb[i] = new JButton(label[i]);
jb[i].addActionListener(this);
jp.add(jb[i]);
}
jf.add(jp);
jf.add(jtf,BorderLayout.NORTH);
jf.setLocation(300,200);//设计出现的位置
jf.setSize(300,200);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new TestJiSuanQi();
}
}
import java.awt.FileDialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;//加滚动条
import javax.swing.JTextArea;
/** 作一下记事本,包括菜单:
文件:新建/打开/保存/另存/退出
编辑:撤销/剪切/复制/粘贴/删除/查找/替换/全选
帮助:关于记事本(关闭窗口不退JVM用dispose方法)
*/
public class Notepad implements ActionListener{
JFrame jf = new JFrame("记事本");
JTextArea jta = new JTextArea(10,20);//记事本,显示纯文本的多行区域
public Notepad(){
String[] menuLabel ={"文件", "编辑","帮助"};
String[][] miLabel ={{"新建", "" , "打开", "保存", "另存","" , "退出"},
{"撤销", "剪切", "复制", "粘贴", " 删除", "","查找", "替换", "" ,"全选"}, {" 关于记事本"} };
JMenuBar jmb = new JMenuBar();
for(int i=0;i<menuLabel.length;i++){
JMenu jm = new JMenu(menuLabel[i]);
jmb.add(jm);
for(int j=0;j<miLabel[i].length;j++){
if("".equals(miLabel[i][j])){
jm.addSeparator();
}else{
JMenuItem jmi = new JMenuItem(miLabel[i][j]);
jm.add(jmi);
jmi.addActionListener(this);
}
}
}
jf.setJMenuBar(jmb);
jf.add(new JScrollPane(jta));
jf.setLocation(300,300);
jf.setSize(400,400);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void actionPerformed(ActionEvent e) {
String comm = e.getActionCommand();
if("新建".equals(comm)){
jta.setText("");
}else if("打开".equals(comm)){
//FileDialog 类显示一个对话框窗口,用户可以从中选择文件
//由于它是一个模式对话框,当应用程序调用其 show 方法来显示对话框时,
//它将阻塞其余应用程序,直到用户选择一个文件
FileDialog fd = new FileDialog(jf,"请选择要打开的文件",FileDialog.LOAD);
fd.setVisible(true);
//fd.show();
}else if("保存".equals(comm)){
}else if("另存".equals(comm)){
}else if("退出".equals(comm)){
}else if("撤销".equals(comm)){
}else if("剪切".equals(comm)){
}else if("复制".equals(comm)){
}else if("粘贴".equals(comm)){
}else if("删除".equals(comm)){
}else if("查找".equals(comm)){
}else if("替换".equals(comm)){
}else if("全选".equals(comm)){
}else{//关于记事本
}
}
public static void main(String[] args) {
new Notepad();
}
}