网站建设资讯

NEWS

网站建设资讯

java退格代码 Java退格

java编写计算器实现退格,倒数,小数点,正负号功能代码

import java.awt.*;

专注于为中小企业提供成都网站设计、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业富源免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

import java.awt.event.*;

import javax.swing.*;

class General extends JFrame implements ActionListener

{

String args[]={"退格","总清","清零","/","1","2","3","+","4","5","6","-","7","8","9","*","0","+/-",".","="};

JButton jb[]=new JButton[20];

JPanel p1=new JPanel();

JTextField jtf=new JTextField(15);

double num1,num2,jieguo;

char c,ch;

public General()

{

Container ct=getContentPane();

jtf.addKeyListener(new KA());

jtf.setHorizontalAlignment(JTextField.RIGHT);

ct.add(jtf,"North");

p1.setLayout(new GridLayout(5,4));

for(int i=0;i20;i++)

{

jb[i]=new JButton(args[i]);

jb[i].addActionListener(this);

p1.add(jb[i]);

}

ct.add(p1);

pack();

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public static void main(String args[])

{

new General();

}

public void actionPerformed(ActionEvent e)// 监听按键

{

String str=e.getActionCommand().trim();

if("0123456789.".indexOf(str)!=-1)

{

if(jtf.getText().equals("0"))jtf.setText(null);

jtf.setText(jtf.getText()+str);

return;

}

if("+-*/".indexOf(str)!=-1)

{

num1=Double.parseDouble(jtf.getText());

c=str.charAt(0);

jtf.setText(null);

return;

}

else if(str.equals("="))

{

num2=Double.parseDouble(jtf.getText());

switch(c)

{

case '+': jieguo=num1+num2; break;

case '-': jieguo=num1-num2; break;

case '*': jieguo=num1*num2; break;

case '/': jieguo=num1/num2; break;

}

jtf.setText(Double.toString(jieguo));

}

else if(str.equals("+/-"))

{

if(jtf.getText().isEmpty()==false)

{

Double lnum=-(Double.parseDouble(jtf.getText()));

jtf.setText(Double.toString(lnum));

}

else

{

jtf.setText("-");

}

}

else if(str.equals("清空"))

{

jtf.setText(null);

}

else if(str.equals("清零"))

{

jtf.setText("0");

}

else if(str.equals("退格"))

{

jtf.setText(jtf.getText().substring(0,jtf.getText().length()-1));

}

}

class KA extends KeyAdapter // 监听键盘

{

public void keyPressed(KeyEvent e)

{

char ch=e.getKeyChar();

if("+-*/".indexOf(ch)!=-1)

{

num1=Double.parseDouble(jtf.getText());

c=ch;

}

if(ch=='='|ch==e.VK_ENTER)

{

num2=Double.parseDouble(jtf.getText());

switch(c)

{

case '+': jieguo=num1+num2; break;

case '-': jieguo=num1-num2; break;

case '*': jieguo=num1*num2; break;

case '/': jieguo=num1/num2; break;

}

}

}

public void keyReleased(KeyEvent e)

{

char ch=e.getKeyChar();

if("+-*/".indexOf(ch)!=-1)

{

jtf.setText(null);

}

if(ch=='='|e.getKeyCode()==e.VK_ENTER)

{

jtf.setText(Double.toString(jieguo));

}

}

}

}

java 退格键的控制字符是什么?

是的啊,退格就是\b。你可以用e.KeyCode==8试试。bs(backspace)

我这里有一个ascii码,你以后可以对照看

java 写计算器的退格键怎么写,如“123456”按下退格变“12345”

String str = "12345";

str = str.substring(0, str.length()-1);

int a = Integer.parseInt(str);

为什么java中退格符\b不起作用?

可能是因为eclipse的console吧。。可能显示模式是Unicode,然后\b就变成了个框框。你可以试一下直接在cmd(命令提示符)里面用java命令行跑

有没有完整的计算器Java代码,不要有错误的,急求

package jisuanqi;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class Calculator extends JFrame implements ActionListener{     //建一个Calculator类继承JFrame实现ActionListener

public static void main (String args[]){

Calculator calculator=new Calculator();     //创建对象calculator

calculator.setVisible(true);               //窗口可见

calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  //关闭图标后结束程序

}

String keys []={"7","8","9","/","4","5","6","*","1","2","3","-","0",".","=","+"};//表示计算器的键的名字

String command []={"backspace","C"};//功能键

JButton KEYS []=new JButton[keys.length];//创建键对象

JButton COMMAND[]=new JButton[command.length];//功能键对象

static JTextField resultSet=new JTextField();//建一个文本框

double resultNum;        //结果

String operator="";//运算符  ---------------------------

public Calculator() {//    构造函数

super();      

init();//初始化计算器

this.setBackground(Color.WHITE);//this代表用当前构造方法创建的对象

this.setTitle("简单计算器");    //窗口标题

this.setLocation(500, 300);   //窗口大小

this.pack(); //使组件大小合适

}

void init() {      //初始化计算器

resultSet.setHorizontalAlignment(JTextField.RIGHT);     //设置文本框内容向右对齐

resultSet.setBackground(Color.WHITE);           //设置文本框背景颜色

JPanel keysPanel=new JPanel();//创建一个面板

keysPanel.setLayout(new GridLayout(4,5,3,3)); //设置面板的布局为网格型

for (int i=0;ikeys.length;i++) {      //把数字键和符号键设为按钮

KEYS[i]=new JButton(keys[i]);

keysPanel.add(KEYS[i]);            //把按钮加到面板中

}

JPanel comPanel=new JPanel();       //创建命令键面板

comPanel.setLayout(new GridLayout(1,2,3,3));//设置面板布局为网格型 

for(int i=0;icommand.length;i++) {    //把命令键设置为按钮

COMMAND[i]=new JButton(command[i]);

comPanel.add(COMMAND[i]);          //把按钮放到面板上

}

JPanel pane=new JPanel();      //创建面板

pane.setLayout(new BorderLayout());  //面板布局为区域型

pane.add(comPanel,BorderLayout.NORTH);     //把命令面板加入到大面板上

pane.add(keysPanel,BorderLayout.CENTER); //把数字键面板加到大面板

getContentPane().setLayout(new BorderLayout());     //设置底层容器的布局为区域型

getContentPane().add(resultSet,BorderLayout.NORTH);   //把文本框放到北面

getContentPane().add(pane,BorderLayout.CENTER);    //把大面板放到中央

for(int i=0;ikeys.length;i++){

KEYS[i].addActionListener(this);//为按钮添加监听器

}

for(int i=0;icommand.length;i++){

COMMAND[i].addActionListener(this);   

}

}

//处理事件  

public void actionPerformed(ActionEvent e){  

String lable=e.getActionCommand();

if(lable.equals("backspace")){      //如果命令为backspace

backspace();

}

else if (lable.equals("C")){     //如果命令为C

Clear();

}

else if (Character.isDigit(lable.charAt(0))) {       //---------------

if(resultSet.getText().equals("0")){

resultSet.setText("");

}

resultSet.setText(resultSet.getText()+lable);

}

else if (lable.equals(".")){

point();

}

else if (lable.equals("=")){

equal();

}

else {

doOperation();

resultSet.setText("");

operator=lable;

}

}

void point() {

String s=resultSet.getText();

if(s.indexOf(".")==-1){

resultSet.setText(s+".");

}

}

void equal() {

doOperation();

resultSet.setText(""+resultNum);

operator="";

}

void doOperation() {

double m=Double.parseDouble(resultSet.getText());

if(operator.equals("")){

resultNum=m;

}

if(operator.equals("+")){

resultNum+=m;

}

if(operator.equals("-")){

resultNum-=m;

}

if(operator.equals("*")){

resultNum*=m;

}

if(operator.equals("/")){

resultNum/=m;

}

}

void Clear() {     //清零

resultSet.setText("0");

}

void backspace() {    //退格

String text =resultSet.getText();

if (text.length()0){

resultSet.setText(text.substring(0, text.length()-1));//将文本最后一个字符删除

}

else if (text.length()==0){

resultSet.setText("0");

}

}

}

Java中转义退格字符的问题

\b 代表 一个单词的边界

这是 JDK1.6 中的 API 说的

\b是正则表达式规定的一个特殊代码(某些人叫它元字符,metacharacter),代表着单词的开头或结尾,也就是单词的分界处。虽然通常英文的单词是由空格,标点符号或者换行来分隔的,但是\b并不匹配这些单词分隔字符中的任何一个,它只匹配一个位置

;nbsp;  如何这篇文章你能看完,相信一定对你有相当大的帮忙


文章名称:java退格代码 Java退格
标题网址:http://cdweb.net/article/dooioip.html