📄 testcau.java
字号:
package woneng;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TestCau {
public static void main(String[] args){
CauFrame cf=new CauFrame("计算器");
//new PassWord(cf);
}
}
class CauFrame extends JFrame implements ActionListener{
Button button[];
JTextField tf;
boolean com=false;//判断点击数字之前是否点了+,-*,/,=;
int p=0; //判断点击数字之前是否点了数字;
int j=0; //判断是第一次用+,-,*,/;
float b1,b2; //获取前一个数;
int s=0; //+,-,*,/用1,2,3,4标号;
float result;
int t;
int x=0;
String str;
public CauFrame(String s){
super(s);
setResizable(false);
setLocation(400,300);
setSize(200,200);
setBackground(Color.BLUE);
setLayout(new BorderLayout());
Panel p1=new Panel();
tf=new JTextField(16);
tf.setEditable(false); //设置指定的 boolean 变量,以指示此 TextComponent 是否应该为可编辑的。当状态更改时,将激发 PropertyChange 事件("editable")。
p1.add(tf);
tf.setHorizontalAlignment(JTextField.RIGHT );
tf.setText("");
add(p1,BorderLayout.NORTH);
button=new Button[20];
Panel p2=new Panel(new GridLayout(5,4));
button[0]=new Button("Sqrt");
button[1]=new Button("+/-");
button[2]=new Button("CE");
button[3]=new Button("C");
button[4]=new Button("7");
button[5]=new Button("8");
button[6]=new Button("9");
button[7]=new Button("/");
button[8]=new Button("4");
button[9]=new Button("5");
button[10]=new Button("6");
button[11]=new Button("*");
button[12]=new Button("1");
button[13]=new Button("2");
button[14]=new Button("3");
button[15]=new Button("-");
button[16]=new Button("0");
button[17]=new Button(".");
button[18]=new Button("=");
button[19]=new Button("+");
for(int i=0;i<button.length;i++)
{
p2.add(button[i]);
button[i].addActionListener(this);
}
add(p2);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==button[0]){
tf.setText(""+Math.sqrt(Double.parseDouble(tf.getText())));
}
if(e.getSource()==button[1])
{ if(Float.parseFloat(tf.getText())>0||Float.parseFloat(tf.getText())<0)
tf.setText(""+(-Double.parseDouble(tf.getText())));
else
tf.setText(tf.getText());
}
if(e.getSource()==button[2]||e.getSource()==button[3]){
//tf.setText(null);
tf.setText("0");
// x=0;
// t=0;
// com=false;
// p=0;
}
if(e.getSource()==button[4]||e.getSource()==button[5]||e.getSource()==button[6]||e.getSource()==button[8]||e.getSource()==button[9]||e.getSource()==button[10]||e.getSource()==button[12]||e.getSource()==button[13]||e.getSource()==button[14]){
if(p==0||com) //这句话什么意思, com点击数字前没点加减乘除,p点击数字前没点数字``````.``.``.```..````.``!!~~
{
tf.setText( e.getActionCommand());//除去后按+ - * /输入第二次数字时第一个显示不出来
com=false;
p=1;
}
else{if(Float.parseFloat(tf.getText())!=0)
tf.setText(tf.getText()+e.getActionCommand());//
else{
str=tf.getText()+e.getActionCommand();
if(str.length()>1&&str.charAt(1)!='.'){
str=str.substring(1); //"unhappy".substring(2) returns "happy"
tf.setText(str);
}
else
tf.setText(str);
}
}
} /////////////
if(e.getSource()==button[16]){ ///0按钮
if(p==0||com){
tf.setText(e.getActionCommand());
com=false;
p=1;
}
else{
if(Float.parseFloat(tf.getText())>0||Float.parseFloat(tf.getText())<0)
tf.setText(tf.getText()+e.getActionCommand());
else{
if(tf.getText().trim().indexOf(".") == -1)
tf.setText(tf.getText());
else
tf.setText(tf.getText()+e.getActionCommand());
}
}
}
if(e.getSource()==button[17]){ //. 按钮
if(p==0||com){ //这3句什么意思
com=false;
p=1;
}
else{
if(tf.getText().trim().indexOf(".") == -1)
tf.setText(tf.getText()+e.getActionCommand());
else
tf.setText(tf.getText());
}
}
if(e.getSource()==button[4]||e.getSource()==button[5]||e.getSource()==button[6]||e.getSource()==button[8]||e.getSource()==button[9]||e.getSource()==button[10]||e.getSource()==button[12]||e.getSource()==button[13]||e.getSource()==button[14])
t=0;
if(e.getSource()==button[7]||e.getSource()==button[11]||e.getSource()==button[15]||e.getSource()==button[19])
x++;
if(e.getSource()==button[7]||e.getSource()==button[11]||e.getSource()==button[15]||e.getSource()==button[19]){
if(t==0||x==1){ //按了数字后再按 + - * /
//////aaaaaaaaaaaaaa
}
else{
switch(s){
case 4:{
b2=Float.parseFloat(tf.getText());
result=b1/b2;
tf.setText(""+result);
break;
}
case 3:{
b2=Float.parseFloat(tf.getText());
result=b1*b2;
tf.setText(""+result);
break;
}
case 2:{
b2=Float.parseFloat(tf.getText());
result=b1-b2;
tf.setText(""+result);
break;
}
case 1:{
b2=Float.parseFloat(tf.getText());
result=b1+b2;
tf.setText(""+result);
break;
}
}
}
if(e.getSource()==button[7]||e.getSource()==button[11]||e.getSource()==button[15]||e.getSource()==button[19])
t=1;
}
if(e.getSource()==button[7])
{
com=true;
p=0;
b1=Float.parseFloat(tf.getText());
s=4;
}
if(e.getSource()==button[11]){
p=0;
b1=Float.parseFloat(tf.getText());
s=3;
}
if(e.getSource()==button[15]){
com=true;
p=0;
b1=Float.parseFloat(tf.getText());
s=2;
}
if(e.getSource()==button[19]){
com=true;
p=0;
b1=Float.parseFloat(tf.getText());
s=1;
}
if(e.getSource()==button[18]){
switch(s){
case 4:{
b2=Float.parseFloat(tf.getText());
result=b1/b2;
tf.setText(""+result);
break;
}
case 3:{
b2=Float.parseFloat(tf.getText());
result=b1*b2;
tf.setText(""+result);
break;
}
case 2:{
b2=Float.parseFloat(tf.getText());
result=b1-b2;
tf.setText(""+result);
break;
}
case 1:{
b2=Float.parseFloat(tf.getText());
result=b1+b2;
tf.setText(""+result);
break;
}
}
}
}
}
/*class PassWord implements ActionListener{
JTextField user;
JPasswordField passWd;
JButton b1,b2;
JDialog d;
Container dialogPane;
CauFrame cf;
public PassWord(CauFrame cf){
d=new JDialog();
d.setTitle("请输入用户名和密码");
dialogPane=d.getContentPane();
dialogPane.setLayout(new GridLayout(3,2));
dialogPane.add(new JLabel("用户名",SwingConstants.CENTER));
user=new JTextField();
dialogPane.add(user);
dialogPane.add(new JLabel("密码",SwingConstants.CENTER));
passWd=new JPasswordField();
dialogPane.add(passWd);
b1=new JButton("确定");
b1.addActionListener(this);
dialogPane.add(b1);
b2=new JButton("退出");
b2.addActionListener(this);
dialogPane.add(b2);
d.setBounds(400,300,400,150);
d.getRootPane().setDefaultButton(b1);
d.setVisible(true);
this.cf=cf;
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==b1){
String name=user.getText();
String passWord=passWd.getText();
if((name.equals("test"))&&(passWord.equals("1234"))){
d.setVisible(false);
cf.setVisible(true);
}
else{
JOptionPane.showMessageDialog(d,"错误的用户名或密码","请重新输入",JOptionPane.WARNING_MESSAGE);
user.setText("");
passWd.setText("");
}
}
if(e.getSource()==b2){
System.exit(0);
}
}
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -