首先 先看方法本体:我们用到了java环境下自带的生成随机数的方法
@Override
public void actionPerformed(ActionEvent e) {
String perstring = ta.getText();
String[] personnelArray = perstring.split("\n{1,}");
int index = (int) (Math.random()* personnelArray.length);
String formatArg = "本次抽取的观众人员是:\n\t%1$s 成为本次观众抽奖的得主。"
+"\n\n我们将为%1$s\n颁发:\n\t奖品。";
String info = String.format(formatArg,personnelArray[index]);
ta1.setText(info);
}
然后我们在设计下窗口:
//创建窗体
Frame f = new Frame("活动抽奖");
//设置属性
f.setBounds(400, 200, 400, 400);
f.setLayout(new FlowLayout());
//创建文本框
TextField tf = new TextField(20);
//创建按钮
JButton bu = new JButton("名称提交");
//创建文本域
TextArea ta = new TextArea(15,28);
JButton bu1 = new JButton("确认抽取");
//创建文本域
TextArea ta1 = new TextArea(15,28);
完整代码如下:
import javax.swing.*;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
/*
* 把文本框的值转移到文本域
* 组件:文本框、按钮、文本域
*/
public class FrimeDemo3 {
public static void main(String[] args) {
//创建窗体
Frame f = new Frame("活动抽奖");
//设置属性
f.setBounds(400, 200, 400, 400);
f.setLayout(new FlowLayout());
//创建文本框
TextField tf = new TextField(20);
//创建按钮
JButton bu = new JButton("名称提交");
//创建文本域
TextArea ta = new TextArea(15,28);
JButton bu1 = new JButton("确认抽取");
//创建文本域
TextArea ta1 = new TextArea(15,28);
bu.setLocation(5,28);//定位
//把组建添加到窗体
f.add(tf);
f.add(bu);
f.add(ta);
f.add(bu1);
f.add(ta1);
//设置窗体关闭
f.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//对按钮添加事件
bu.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//获取文本框的值
String tf_str = tf.getText().trim();
//清空数据
tf.setText("");
//设置给文本域
//ta.setText(tf_str); 前面的内容会被替换掉
//追加和换行
ta.append(tf_str+"\r\n");
//获取光标
tf.requestFocus();
}
});
bu1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String perstring = ta.getText();
String[] personnelArray = perstring.split("\n{1,}");
int index = (int) (Math.random()* personnelArray.length);
String formatArg = "本次抽取的观众人员是:\n\t%1$s 成为本次观众抽奖的得主。"
+"\n\n我们将为%1$s\n颁发:\n\t20箱过期牛奶。";
String info = String.format(formatArg,personnelArray[index]);
ta1.setText(info);
}
});
//设置窗体显示
f.setVisible(true);
}
}
效果如下: