猿问

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
	
}
}


慕神4057320
浏览 3291回答 0
0回答
随时随地看视频慕课网APP

相关分类

Java
我要回答