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){

处置();

}



}



运行结果: