java软键盘_java,使用的eclipse平台。数字软键盘的实现,点击却没有数字(所给的代码仅仅只有软键盘)...

import java.awt.Color;

import java.awt.Font;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.BorderFactory;

import javax.swing.JButton;

import javax.swing.JPanel;

import javax.swing.JTextField;

import javax.swing.border.Border;

public  class KeyJPanel extends JPanel implements ActionListener{

JButton[] keyButton=new JButton[12];

String[] num={"1","2","3","4","5","6","7","8","9","0",".","BackSpace"};

AbstractPanel selectedPanel;

JTextField inputTextField;

//构造方法,初始化数字键盘页面,输入参数是某个图形面板对象

public KeyJPanel(AbstractPanel selectedPanel){

this.selectedPanel=selectedPanel;

//设置面板的边距

Border lb=BorderFactory.createLineBorder(Color.gray,2);

setBorder(lb);

//设置布局是GridLayout型

setLayout(new GridLayout(4,3));

//创建按钮对象数组,给每个元素注册ActionEvent时间监听器

for(int i=0;i<12;i++){

keyButton[i]=new JButton(num[i]);

keyButton[i].setFont(new Font("Arial",Font.BOLD,15));

keyButton[i].setForeground(Color.BLACK);

keyButton[i].addActionListener(this);

add(keyButton[i]);

}

}

//接口ActionListener中的方法,当单机按钮时,执行此方法

public void actionPerfomed(ActionEvent e){

//获取事件源(某个按钮)

JButton button=(JButton)e.getSource();

//获取KeyJPanel对象所在图形面板上的获得焦点的文本框对象

inputTextField=selectedPanel.getInputTextField();

//inputTextNumber方法负责button对象对inputTextField 的输入

inputNumber(inputTextField,button);

}

//实现数字软键盘对文本框的一次录入工作

public void inputNumber(JTextField tf,JButton button){

//获取上一次单机按钮时文本框内的值,作为旧串

String oldString=tf.getText();

if(oldString==null){

tf.setText(" ");

}

String subStr=oldString.substring(0,oldString.length()-1);

//获取当前按钮的文本信息,作为新串

String newString=button.getText();

//若单机了“BackSpace"键,取字串

if(newString.equals("BackSpace")){

tf.setText(subStr);

}

//若单机了”.“按钮,欧字符串链接

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

tf.setText(oldString+".");

}

//若单击了0~9中的任意一个按钮,做字符串的链接

else{

tf.setText(oldString+newString);

}

}

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值