實作:輸入數組,并排序
計算部分代碼:
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
<code>protected</code> <code>void</code> <code>do_button_actionPerformed(ActionEvent e) {</code>
<code> </code><code>String text = arrayField.getText();</code><code>// 擷取使用者輸入</code>
<code> </code><code>text=text.trim(); </code><code>//去除首尾空格</code>
<code> </code><code>if</code><code>(</code><code>""</code><code>.equals(text)){</code>
<code> </code><code>JOptionPane.showMessageDialog(</code><code>null</code><code>,</code><code>"請輸入要排序的數組内容"</code><code>);</code>
<code> </code><code>return</code><code>;</code>
<code> </code><code>}</code>
<code> </code><code>String[] arrayStr = text.split(</code><code>" {1,}"</code><code>);</code><code>// 拆分輸入為數組</code>
<code> </code><code>int</code><code>[] array = </code><code>new</code> <code>int</code><code>[arrayStr.length];</code><code>// 建立整數類型數組</code>
<code> </code><code>sortArea.setText(</code><code>"數組原有内容:\n"</code><code>);</code>
<code> </code><code>for</code> <code>(String string : arrayStr) {</code><code>// 輸出原有數組内容</code>
<code> </code><code>sortArea.append(string + </code><code>" "</code><code>);</code>
<code> </code><code>for</code> <code>(</code><code>int</code> <code>i = </code><code>0</code><code>; i < array.length; i++) {</code><code>// 初始化整形數組</code>
<code> </code><code>array[i] = Integer.parseInt(arrayStr[i]);</code>
<code> </code><code>sortArea.append(</code><code>"\n"</code><code>);</code>
<code> </code><code>Arrays.sort(array);</code><code>// 使用sort方法對整形數組進行排序</code>
<code> </code><code>sortArea.append(</code><code>"數組排序後的内容:\n"</code><code>);</code>
<code> </code><code>for</code> <code>(</code><code>int</code> <code>value : array) {</code><code>// 輸出排序後的數組内容</code>
<code> </code><code>sortArea.append(value + </code><code>" "</code><code>);</code>
<code> </code><code>}</code>
<code> </code>
<code> </code><code>protected</code> <code>void</code> <code>do_arrayField_keyPressed(KeyEvent e) {</code>
<code> </code><code>char</code> <code>key = e.getKeyChar();</code><code>// 擷取使用者按鍵字元</code>
<code> </code><code>String mask = </code><code>"0123456789 "</code> <code>+ (</code><code>char</code><code>) </code><code>8</code><code>;</code><code>// 定義規範化字元模闆</code>
<code> </code><code>if</code> <code>(mask.indexOf(key) == -</code><code>1</code><code>) {</code><code>// 判斷按鍵字元是否屬于規範化字元範圍</code>
<code> </code><code>e.consume();</code><code>// 取消非規範化字元的輸入有效性</code>
<code>}</code>
效果圖:
<a href="http://blog.51cto.com/attachment/201310/163028158.jpg" target="_blank"></a>
完整代碼:
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
<code>package</code> <code>com.lixiyu;</code>
<code>import</code> <code>java.awt.EventQueue;</code>
<code>import</code> <code>java.awt.event.ActionEvent;</code>
<code>import</code> <code>java.awt.event.ActionListener;</code>
<code>import</code> <code>java.awt.event.KeyAdapter;</code>
<code>import</code> <code>java.awt.event.KeyEvent;</code>
<code>import</code> <code>java.util.Arrays;</code>
<code>import</code> <code>javax.swing.JButton;</code>
<code>import</code> <code>javax.swing.JDialog;</code>
<code>import</code> <code>javax.swing.JFrame;</code>
<code>import</code> <code>javax.swing.JLabel;</code>
<code>import</code> <code>javax.swing.JOptionPane;</code>
<code>import</code> <code>javax.swing.JPanel;</code>
<code>import</code> <code>javax.swing.JScrollPane;</code>
<code>import</code> <code>javax.swing.JTextArea;</code>
<code>import</code> <code>javax.swing.JTextField;</code>
<code>import</code> <code>javax.swing.UIManager;</code>
<code>import</code> <code>javax.swing.border.EmptyBorder;</code>
<code>public</code> <code>class</code> <code>SortExamplePerfect </code><code>extends</code> <code>JFrame {</code>
<code> </code>
<code> </code><code>/**</code>
<code> </code><code>*</code>
<code> </code><code>*/</code>
<code> </code><code>private</code> <code>static</code> <code>final</code> <code>long</code> <code>serialVersionUID = 6185462970912293135L;</code>
<code> </code><code>private</code> <code>JPanel contentPane;</code>
<code> </code><code>private</code> <code>JTextField arrayField;</code>
<code> </code><code>private</code> <code>JTextArea sortArea;</code>
<code> </code><code>* Launch the application.</code>
<code> </code><code>public</code> <code>static</code> <code>void</code> <code>main(String[] args) {</code>
<code> </code><code>try</code> <code>{</code>
<code> </code><code>UIManager</code>
<code> </code><code>.setLookAndFeel(</code><code>"com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"</code><code>);</code>
<code> </code><code>} </code><code>catch</code> <code>(Throwable e) {</code>
<code> </code><code>e.printStackTrace();</code>
<code> </code><code>EventQueue.invokeLater(</code><code>new</code> <code>Runnable() {</code>
<code> </code><code>public</code> <code>void</code> <code>run() {</code>
<code> </code><code>try</code> <code>{</code>
<code> </code><code>SortExamplePerfect frame = </code><code>new</code> <code>SortExamplePerfect();</code>
<code> </code><code>frame.setVisible(</code><code>true</code><code>);</code>
<code> </code><code>} </code><code>catch</code> <code>(Exception e) {</code>
<code> </code><code>e.printStackTrace();</code>
<code> </code><code>}</code>
<code> </code><code>}</code>
<code> </code><code>});</code>
<code> </code><code>* Create the frame.</code>
<code> </code><code>public</code> <code>SortExamplePerfect() {</code>
<code> </code><code>setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</code>
<code> </code><code>setBounds(</code><code>100</code><code>, </code><code>100</code><code>, </code><code>450</code><code>, </code><code>300</code><code>);</code>
<code> </code><code>contentPane = </code><code>new</code> <code>JPanel();</code>
<code> </code><code>contentPane.setBorder(</code><code>new</code> <code>EmptyBorder(</code><code>5</code><code>, </code><code>5</code><code>, </code><code>5</code><code>, </code><code>5</code><code>));</code>
<code> </code><code>setContentPane(contentPane);</code>
<code> </code><code>setTitle(</code><code>"使用Sort方法對數組進行排序"</code><code>);</code>
<code> </code><code>contentPane.setLayout(</code><code>null</code><code>);</code>
<code> </code>
<code> </code><code>JLabel label = </code><code>new</code> <code>JLabel(</code>
<code> </code><code>"輸入數組内容,空格為數組元素分隔符"</code><code>);</code>
<code> </code><code>label.setBounds(</code><code>6</code><code>, </code><code>6</code><code>, </code><code>265</code><code>, </code><code>18</code><code>);</code>
<code> </code><code>contentPane.add(label);</code>
<code> </code><code>arrayField = </code><code>new</code> <code>JTextField();</code>
<code> </code><code>arrayField.addKeyListener(</code><code>new</code> <code>KeyAdapter() {</code>
<code> </code><code>@Override</code>
<code> </code><code>public</code> <code>void</code> <code>keyPressed(KeyEvent e) {</code>
<code> </code>
<code> </code><code>public</code> <code>void</code> <code>keyTyped(KeyEvent e) {</code>
<code> </code><code>char</code> <code>key = e.getKeyChar();</code>
<code> </code><code>String mask = </code><code>"0123456789 "</code> <code>+ (</code><code>char</code><code>) </code><code>8</code><code>;</code>
<code> </code><code>if</code> <code>(mask.indexOf(key) == -</code><code>1</code><code>) {</code>
<code> </code><code>e.consume();</code>
<code> </code><code>arrayField.setBounds(</code><code>6</code><code>, </code><code>36</code><code>, </code><code>422</code><code>, </code><code>30</code><code>);</code>
<code> </code><code>contentPane.add(arrayField);</code>
<code> </code><code>arrayField.setColumns(</code><code>10</code><code>);</code>
<code> </code><code>JButton button = </code><code>new</code> <code>JButton(</code><code>"排序"</code><code>);</code>
<code> </code><code>button.addActionListener(</code><code>new</code> <code>ActionListener() {</code>
<code> </code><code>public</code> <code>void</code> <code>actionPerformed(ActionEvent e) {</code>
<code> </code><code>do_button_actionPerformed(e);</code>
<code> </code><code>button.setBounds(</code><code>164</code><code>, </code><code>78</code><code>, </code><code>90</code><code>, </code><code>30</code><code>);</code>
<code> </code><code>contentPane.add(button);</code>
<code> </code><code>JScrollPane scrollPane = </code><code>new</code> <code>JScrollPane();</code>
<code> </code><code>scrollPane.setBounds(</code><code>6</code><code>, </code><code>118</code><code>, </code><code>422</code><code>, </code><code>138</code><code>);</code>
<code> </code><code>contentPane.add(scrollPane);</code>
<code> </code><code>sortArea = </code><code>new</code> <code>JTextArea();</code>
<code> </code><code>sortArea.setLineWrap(</code><code>true</code><code>);</code>
<code> </code><code>scrollPane.setViewportView(sortArea);</code>
<code> </code><code>protected</code> <code>void</code> <code>do_button_actionPerformed(ActionEvent e) {</code>
本文轉自lixiyu 51CTO部落格,原文連結:http://blog.51cto.com/lixiyu/1304300,如需轉載請自行聯系原作者