我又来了,继续求助,谢谢。

a1143934776 a1143934776 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.Arrays;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JTextArea;
import javax.swing.JLabel;

public class SortArray054 extends JFrame {

private JPanel contentPane;
private JTextField textField;
private JTextArea sortArea;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
SortArray054 frame = new SortArray054();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public SortArray054() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

textField = new JTextField();
textField.addKeyListener(new KeyAdapter()
{
public void KeyPressed(KeyEvent e)
{
do_textField_keyPressed(e);
}
public void KeyType(KeyEvent e)
{
char key=e.getKeyChar();
//获取一个与此事件相关联的字符。
String mask="0123456789"+(char)8;
if(mask.indexOf(key)==-1)
//如果字符串中没有这样的字符。
{
e.consume();
//使用此事件,以便不会 按照默认的方式 由产生此事件的 源代码处理此事件。
//意思是取消非规范化字符的输入有效性。
}
}
});
textField.setBounds(10, 30, 414, 35);
contentPane.add(textField);
textField.setColumns(10);

JButton button = new JButton("\u6392\u5E8F");
button.addActionListener(new ActionListener()
{

@Override
public void actionPerformed(ActionEvent e) {
do_button_actionPerformed(e);

}

});
button.setBounds(165, 86, 93, 23);
contentPane.add(button);

sortArea = new JTextArea();
sortArea.setBounds(10, 130, 414, 122);
contentPane.add(sortArea);

JLabel label = new JLabel("\u8F93\u5165\u6570\u7EC4\u5185\u5BB9\uFF0C\u7A7A\u683C\u4E3A\u6570\u7EC4\u5143\u7D20\u5206\u9694\u7B26");
label.setBounds(10, 5, 248, 15);
contentPane.add(label);
}

protected void do_button_actionPerformed(ActionEvent e) {
String text=textField.getText();
//获取用户输入字符串。
String[] arrayStr=text.split(" {1,}");
//用空格符拆分用户的输入为数组。
int[] array=new int[arrayStr.length];
//创建长度为输入的字符数组的长度的整数类型数组。
sortArea.setText("数组原有内容: \n");
for(String str:arrayStr)//高级for循环。
{
sortArea.append(str+" ");
//输出原有数组内容。
}
for(int i=0;i<arrayStr.length;i++)
{
array[i]=Integer.parseInt(arrayStr[i]);
//初始化整型数组。将输入的字符串数组元素转换成整型
}
sortArea.append("\n");
//换行。
Arrays.sort(array);
//使用sort方法对整型数组进行排序。
sortArea.append("数组排序后内容: \n");
for(int value:array)
{
sortArea.append(value+" ");
}

}
protected void do_textField_keyPressed(KeyEvent e) {
char key = e.getKeyChar();// 获取用户按键字符
String mask = "0123456789 " + (char) 8;// 定义规范化字符模板
if (mask.indexOf(key) == -1) {// 判断按键字符是否属于规范化字符范围
e.consume();// 取消非规范化字符的输入有效性
}
}
}



好长啊,辛苦了,谢谢,有几个问题,请帮忙解决下。
	public void KeyPressed(KeyEvent e)
{
do_textField_keyPressed(e);
}

这个里面的do_textField_keyPressed(e);好像有没有都没什么关系的,而protected void do_textField_keyPressed(KeyEvent e) 这个方法都可以执行,为什么呢?


String mask = "0123456789 " + (char) 8;// 定义规范化字符模板
。这个是什么意思呢?包括它的注释,谢谢。
...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部
a1143934776
Java SE 62,621 成员 307,251 内容