java随机抽取程序(实践)
这是一个随机选择的赢得观众的java小程序,主要由面板、TextField、文本实践,在窗口的布局按钮,实践的一维数组,如何拆分字符串,如何格式化字符串,以及如何替换字符串中的某些字符。进口java.awt.borderlayout;
进口java.awt.color;
进口java.awt.eventqueue;
进口java.awt.event.actionevent;
进口java.awt.event.actionlistener;
进口java.awt.event.keyadapter;
进口java.awt.event.keyevent;
进口javax.swing.jframe;
进口javax.swing.jbutton;
进口javax.swing.jpanel;
进口javax.swing.jscrollpane;
进口javax.swing.jtextarea;
进口javax.swing.jtextfield;
进口javax.swing.uimanager;
进口javax.swing.border.emptyborder;
进口javax.swing.border.titledborder;
公共课random02扩展JFrame {
私有静态最终长1l serialVersionUID =;
私人JPanel内容块;
私人JTextField namefield;
私人JTextArea personnelarea;
私人JTextArea resultarea;
/ main方法。
public static void main(String { } args){
尝试{
UIManager.setLookAndFeel(COM。太阳。java。摆动。PLAF。灵气。nimbuslookandfeel );
} catch(Throwable e){
E.printStackTrace();
}
eventqueue.invokelater(新Runnable(){)
公共空运行(){
尝试{
类实例化。
random02框架=新random02();
frame.setvisible(真的);
} catch(异常E){
E.printStackTrace();
}
}
});
}
构建方法。
公共random02(){
窗口系列。
超级();
settitle(随机抽取观众程序);
窗口(100100500300);
setdefaultcloseoperation(JFrame。exit_on_close);
内容块=新JPanel();
contentpane.setborder(新EmptyBorder(5,5,5,5));
setcontentpane(内容块); / /是关键,让容器控件的显示内容块。
contentpane.setlayout(空);
创建左边框。
JPanel面板=新JPanel();
panel.setborder(新TitledBorder(null,进入现场的观众的名字和回
(1010180242)panel.setbounds;
contentpane.add(面板);
(新panel.setlayout BorderLayout(0,5));
创建一个文本框。
namefield =新的文本输入框();
NameField.addKeyListener(新keyadapter(){)
@Override
(keyEvent public void keyPressed e){
do_textfield_keypressed(E);
}
});
panel.add(namefield,BorderLayout。北);
(10)namefield.setcolumns;
此文本创建域。
JScrollPane滚动窗格=新JScrollPane();
panel.add(滚动窗格);
personnelarea =新的文本区();
personnelarea.seteditable(假);
scrollpane.setviewportview(personnelarea);
创建一个文本字段。
JPanel panel_2 =新JPanel();
(18510219242)panel_2.setbounds;
panel_2.setborder(新TitledBorder(null),选择观察员:
contentpane.add(panel_2);
(新panel_2.setlayout BorderLayout(0,0));
JScrollPane的scrollpane_2 =新JScrollPane();
panel_2.add(scrollpane_2);
resultarea =新的文本区();
resultarea.seteditable(假);
resultarea.setlinewrap(真的);
scrollpane_2.setviewportview(resultarea);
创建一个按钮。
JButton button_1 =新JButton(提取);
button_1.addactionlistener(新的action(){)
public void actionPerformed(ActionEvent e){
do_button_1_actionperformed(E);
}
});
button_1.setbounds(407164,63,25);
contentpane.add(button_1);
JButton button_2 =新JButton(退出);
button_2.addactionlistener(新的action(){)
public void actionPerformed(ActionEvent e){
do_button_2_actionperformed(E);
}
});
button_2.setbounds(407215,63,25);
contentpane.add(button_2);
}
定义文本框键盘事件。
(keyEvent protected void do_textfield_keypressed e){
如果(e.getkeychar()!='){
返回;
}
字符串(name = namefield。gettext); / /将文本框中的文本传递的变量名。
如果(name.isempty()){
返回;
}
personnelarea.append(姓名+ );此人的名字和返回到列表中的返回。
(namefield。所有); / /选择文本框中的所有字符。
}
按钮/定义提取方法。
protected void do_button_1_actionperformed(ActionEvent e){
字符串(专员= personnelarea。gettext); / /得到小文本字段的人员名单。
字符串{ } personnelarray = perstring.split({ 1,};获取工作人员数组。
指数=(int)(数学。随机)(* personnelarray。长度); / /产生随机数组索引。
定义成功的信息格式。
字符串formatarg =这时间提取观众:t%1$s祝贺1元5S是这个观众奖得主。
我们将发行% 1美元***:二十例酸奶;
添加获胜的人员参数。
字符串信息= string.format(formatarg,personnelarray {指数});
resultarea.settext(信息); / /结果显示在一个文本字段的获奖信息。
}
定义/退出按钮。
protected void do_button_2_actionperformed(ActionEvent e){
处置();
}
}
运行结果: