实现:输入数组,并排序
计算部分代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
protected
void
do_button_actionPerformed(ActionEvent e) {
String text = arrayField.getText();
// 获取用户输入
text=text.trim();
//去除首尾空格
if
(
""
.equals(text)){
JOptionPane.showMessageDialog(
null
,
"请输入要排序的数组内容"
);
return
;
}
String[] arrayStr = text.split(
" {1,}"
);
// 拆分输入为数组
int
[] array =
new
int
[arrayStr.length];
// 创建整数类型数组
sortArea.setText(
"数组原有内容:\n"
);
for
(String string : arrayStr) {
// 输出原有数组内容
sortArea.append(string +
" "
);
}
for
(
int
i =
0
; i < array.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_arrayField_keyPressed(KeyEvent e) {
char
key = e.getKeyChar();
// 获取用户按键字符
String mask =
"0123456789 "
+ (
char
)
8
;
// 定义规范化字符模板
if
(mask.indexOf(key) == -
1
) {
// 判断按键字符是否属于规范化字符范围
e.consume();
// 取消非规范化字符的输入有效性
}
}
}
|
效果图:
完整代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
package
com.lixiyu;
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.JButton;
import
javax.swing.JDialog;
import
javax.swing.JFrame;
import
javax.swing.JLabel;
import
javax.swing.JOptionPane;
import
javax.swing.JPanel;
import
javax.swing.JScrollPane;
import
javax.swing.JTextArea;
import
javax.swing.JTextField;
import
javax.swing.UIManager;
import
javax.swing.border.EmptyBorder;
public
class
SortExamplePerfect
extends
JFrame {
/**
*
*/
private
static
final
long
serialVersionUID = 6185462970912293135L;
private
JPanel contentPane;
private
JTextField arrayField;
private
JTextArea sortArea;
/**
* Launch the application.
*/
public
static
void
main(String[] args) {
try
{
UIManager
.setLookAndFeel(
"com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"
);
}
catch
(Throwable e) {
e.printStackTrace();
}
EventQueue.invokeLater(
new
Runnable() {
public
void
run() {
try
{
SortExamplePerfect frame =
new
SortExamplePerfect();
frame.setVisible(
true
);
}
catch
(Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public
SortExamplePerfect() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(
100
,
100
,
450
,
300
);
contentPane =
new
JPanel();
contentPane.setBorder(
new
EmptyBorder(
5
,
5
,
5
,
5
));
setContentPane(contentPane);
setTitle(
"使用Sort方法对数组进行排序"
);
contentPane.setLayout(
null
);
JLabel label =
new
JLabel(
"输入数组内容,空格为数组元素分隔符"
);
label.setBounds(
6
,
6
,
265
,
18
);
contentPane.add(label);
arrayField =
new
JTextField();
arrayField.addKeyListener(
new
KeyAdapter() {
@Override
public
void
keyPressed(KeyEvent e) {
}
@Override
public
void
keyTyped(KeyEvent e) {
char
key = e.getKeyChar();
String mask =
"0123456789 "
+ (
char
)
8
;
if
(mask.indexOf(key) == -
1
) {
e.consume();
}
}
});
arrayField.setBounds(
6
,
36
,
422
,
30
);
contentPane.add(arrayField);
arrayField.setColumns(
10
);
JButton button =
new
JButton(
"排序"
);
button.addActionListener(
new
ActionListener() {
public
void
actionPerformed(ActionEvent e) {
do_button_actionPerformed(e);
}
});
button.setBounds(
164
,
78
,
90
,
30
);
contentPane.add(button);
JScrollPane scrollPane =
new
JScrollPane();
scrollPane.setBounds(
6
,
118
,
422
,
138
);
contentPane.add(scrollPane);
sortArea =
new
JTextArea();
sortArea.setLineWrap(
true
);
scrollPane.setViewportView(sortArea);
}
protected
void
do_button_actionPerformed(ActionEvent e) {
String text = arrayField.getText();
// 获取用户输入
text=text.trim();
//去除首尾空格
if
(
""
.equals(text)){
JOptionPane.showMessageDialog(
null
,
"请输入要排序的数组内容"
);
return
;
}
String[] arrayStr = text.split(
" {1,}"
);
// 拆分输入为数组
int
[] array =
new
int
[arrayStr.length];
// 创建整数类型数组
sortArea.setText(
"数组原有内容:\n"
);
for
(String string : arrayStr) {
// 输出原有数组内容
sortArea.append(string +
" "
);
}
for
(
int
i =
0
; i < array.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_arrayField_keyPressed(KeyEvent e) {
char
key = e.getKeyChar();
// 获取用户按键字符
String mask =
"0123456789 "
+ (
char
)
8
;
// 定义规范化字符模板
if
(mask.indexOf(key) == -
1
) {
// 判断按键字符是否属于规范化字符范围
e.consume();
// 取消非规范化字符的输入有效性
}
}
}
|
本文转自lixiyu 51CTO博客,原文链接:http://blog.51cto.com/lixiyu/1304300,如需转载请自行联系原作者