天天看點

數組例子:利用數組随機抽取幸運觀衆

運作界面:

<a href="http://blog.51cto.com/attachment/201310/130458484.jpg" target="_blank"></a>

除了界面部分主要在于三個區域的處理:nameArea對輸入作要求并把輸入的所有符合要求的字元提取到personalArea區域,擷取觀衆清單文本并作數組來處理,最後随機生成一名幸運觀衆。

詳細代碼及注釋如下:

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

<code>package</code> <code>com.lixiyu;</code>

<code>import</code> <code>java.awt.BorderLayout;</code>

<code>import</code> <code>java.awt.Color;</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>javax.swing.JButton;</code>

<code>import</code> <code>javax.swing.JFrame;</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>import</code> <code>javax.swing.border.TitledBorder;</code>

<code>public</code> <code>class</code> <code>SecondArray </code><code>extends</code> <code>JFrame {</code>

<code>      </code> 

<code>private</code> <code>JPanel contentPane;</code>

<code>private</code> <code>JTextField nameArea;</code>

<code>private</code> <code>JTextArea personalArea;</code>

<code>private</code> <code>JTextArea resultArea;</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.setLookAndFeel(</code><code>"com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"</code><code>);</code><code>//外觀</code>

<code>          </code> 

<code>    </code><code>}</code><code>catch</code><code>(Throwable e){</code>

<code>        </code><code>e.printStackTrace();</code>

<code>    </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>SecondArray frame=</code><code>new</code> <code>SecondArray();</code>

<code>    </code><code>frame.setVisible(</code><code>true</code><code>);</code>

<code>}</code><code>catch</code><code>(Exception e){</code>

<code>    </code><code>e.printStackTrace();</code>

<code>}</code>

<code>});</code>

<code>public</code> <code>SecondArray(){</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>498</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>"利用數組随機抽取幸運觀衆"</code><code>);</code>

<code>    </code><code>contentPane.setLayout(</code><code>null</code><code>);</code>

<code>    </code><code>JPanel panel=</code><code>new</code> <code>JPanel();</code>

<code>    </code><code>panel.setBorder(</code><code>new</code> <code>TitledBorder(</code><code>null</code><code>,</code><code>"輸入在場觀衆并按回車"</code><code>,</code>

<code>     </code><code>TitledBorder.LEADING, TitledBorder.TOP, </code><code>null</code><code>,</code>

<code>     </code><code>new</code> <code>Color(</code><code>59</code><code>, </code><code>59</code><code>, </code><code>59</code><code>)));</code>

<code>    </code><code>panel.setBounds(</code><code>10</code><code>, </code><code>10</code><code>, </code><code>174</code><code>, </code><code>242</code><code>);</code><code>//前兩個是坐标,後兩個是寬度和高度</code>

<code>    </code><code>contentPane.add(panel);</code>

<code>    </code><code>panel.setLayout(</code><code>new</code> <code>BorderLayout(</code><code>0</code><code>, </code><code>5</code><code>));</code><code>//布局管理器</code>

<code>    </code><code>nameArea = </code><code>new</code> <code>JTextField();</code>

<code>    </code><code>nameArea.addKeyListener(</code><code>new</code> <code>KeyAdapter() {</code>

<code>        </code><code>public</code> <code>void</code> <code>keyPressed(KeyEvent e) {</code>

<code>            </code><code>do_textField_keyPressed(e);</code>

<code>        </code><code>}</code>

<code>    </code><code>});</code>

<code>    </code><code>panel.add(nameArea, BorderLayout.NORTH);</code>

<code>    </code><code>nameArea.setColumns(</code><code>10</code><code>);</code>

<code>    </code><code>JScrollPane scrollPane = </code><code>new</code> <code>JScrollPane();</code>

<code>    </code><code>panel.add(scrollPane);</code>

<code>    </code><code>personalArea = </code><code>new</code> <code>JTextArea();</code>

<code>    </code><code>personalArea.setEditable(</code><code>false</code><code>);</code>

<code>    </code><code>scrollPane.setViewportView(personalArea);</code>

<code>    </code><code>JPanel panel_1 = </code><code>new</code> <code>JPanel();</code>

<code>    </code><code>panel_1.setBorder(</code><code>new</code> <code>TitledBorder(</code><code>null</code><code>,</code>

<code>            </code><code>"選取觀衆人員:"</code><code>,</code>

<code>            </code><code>TitledBorder.LEADING, TitledBorder.TOP, </code><code>null</code><code>, </code><code>new</code> <code>Color(</code><code>59</code><code>, </code><code>59</code><code>,</code>

<code>                    </code><code>59</code><code>)));</code>

<code>    </code><code>panel_1.setBounds(</code><code>183</code><code>, </code><code>10</code><code>, </code><code>219</code><code>, </code><code>242</code><code>);</code>

<code>    </code><code>contentPane.add(panel_1);</code>

<code>    </code><code>panel_1.setLayout(</code><code>new</code> <code>BorderLayout(</code><code>0</code><code>, </code><code>0</code><code>));</code>

<code>    </code><code>JScrollPane scrollPane_1 = </code><code>new</code> <code>JScrollPane();</code>

<code>    </code><code>panel_1.add(scrollPane_1);</code>

<code>    </code><code>resultArea = </code><code>new</code> <code>JTextArea();</code>

<code>    </code><code>resultArea.setEditable(</code><code>false</code><code>);</code>

<code>    </code><code>resultArea.setLineWrap(</code><code>true</code><code>);</code>

<code>    </code><code>scrollPane_1.setViewportView(resultArea);</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>407</code><code>, </code><code>164</code><code>, </code><code>63</code><code>, </code><code>25</code><code>);</code>

<code>    </code><code>contentPane.add(button);</code>

<code>    </code><code>JButton button_1 = </code><code>new</code> <code>JButton(</code><code>"退出"</code><code>);</code>

<code>    </code><code>button_1.addActionListener(</code><code>new</code> <code>ActionListener() {</code>

<code>            </code><code>do_button_1_actionPerformed(e);</code>

<code>    </code><code>button_1.setBounds(</code><code>407</code><code>, </code><code>215</code><code>, </code><code>63</code><code>, </code><code>25</code><code>);</code>

<code>    </code><code>contentPane.add(button_1);      </code><code>//以上兩個button為設定抽取和退出鍵</code>

<code>protected</code> <code>void</code> <code>do_textField_keyPressed(KeyEvent e) {</code>

<code>    </code><code>if</code> <code>(e.getKeyChar() != </code><code>'\n'</code><code>)</code><code>// 不是回車字元不做處理</code>

<code>        </code><code>return</code><code>;</code>

<code>    </code><code>String name = nameArea.getText();</code>

<code>    </code><code>if</code> <code>(name.isEmpty())</code><code>// 如果文本框沒有字元串不做處理</code>

<code>    </code><code>personalArea.append(name + </code><code>"\n"</code><code>);</code><code>// 把輸入人名與回車符添加到人員清單</code>

<code>    </code><code>nameArea.selectAll();</code><code>// 選擇文本框所有字元</code>

<code>/*以上是對字輸入字元的限制并加到personalArea區域*/</code>

<code>protected</code> <code>void</code> <code>do_button_actionPerformed(ActionEvent e) {</code>

<code>    </code><code>String perstring = personalArea.getText();</code><code>// 擷取人員清單文本</code>

<code>    </code><code>String[] personnelArray = perstring.split(</code><code>"\n{1,}"</code><code>);</code><code>// 擷取人員數組</code>

<code>    </code><code>int</code> <code>index = (</code><code>int</code><code>) (Math.random() * personnelArray.length);</code><code>// 生成随機數組索引</code>

<code>    </code><code>// 定義包含格式參數的中獎資訊</code>

<code>    </code><code>String formatArg = </code><code>"本次抽取觀衆人員:\n\t%1$s\n恭喜%1$5s成為本次觀衆抽獎的大獎得主。"</code>

<code>            </code><code>+ </code><code>"\n\n我們将為%1$s**頒發:\n\t土豪金Iphone5s一台"</code><code>;</code>

<code>    </code><code>// 為中獎資訊添加人員參數</code>

<code>    </code><code>String info = String.format(formatArg, personnelArray[index]);</code>

<code>    </code><code>resultArea.setText(info);</code><code>// 在文本域顯示中獎資訊</code>

<code>protected</code> <code>void</code> <code>do_button_1_actionPerformed(ActionEvent e) {</code>

<code>    </code><code>dispose();</code>

本文轉自lixiyu 51CTO部落格,原文連結:http://blog.51cto.com/lixiyu/1303995,如需轉載請自行聯系原作者