天天看點

排序例子2:使用sort()方法對數組進行排序

實作:輸入數組,并排序

計算部分代碼:

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 &lt; 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,如需轉載請自行聯系原作者