2个回答
展开全部
参考效果图
参考代码和详细的注释
import java.awt.*;
import java.awt.event.*;
import java.util.Random;
import javax.swing.*;
//本类继承自JFrame,实现了ActionListener接口
public class ButtonFrame extends JFrame implements ActionListener {
//定义常量
public static final String[] NAMES = { "黄蓉", "小龙女", "东方不败", "阿珂", "任盈盈","王语嫣","周芷若" };
public static final String NEW_LINE =System.getProperty("line.separator"); //获取当前系统换行符
public static final String INFO="女神节快乐,随即抽取1人领取奖励.";
//组件
JButton jbStart,jbClear;
JTextArea jta;
//随即
Random random;
//构造方法: 组件的初始化, 排版, 窗口的设置
public ButtonFrame() {
random = new Random();
jta = new JTextArea(INFO);
jta.setLineWrap(true);//自动换行
JScrollPane jsp = new JScrollPane(jta,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
//文本区域添加到滚动面板, 垂直滚动条需要的时候出现, 水平滚动条不需要.
add(jsp, BorderLayout.CENTER);
JPanel jps = new JPanel();
jbStart = new JButton("随即选择");
jbStart.addActionListener(this);//添加事件处理
jbClear = new JButton("清空重置");
jbClear.addActionListener(this);
jps.add(jbStart);
jps.add(jbClear);
add(jps, BorderLayout.SOUTH);
setTitle("窗口");// 窗口标题
setSize(280,220);// 窗口大小
setLocationRelativeTo(null);// 窗口居中
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 当窗口关闭时,程序结束
}
//处理按钮点击事件
public void actionPerformed(ActionEvent e) {
JButton jbTemp = (JButton) e.getSource();
if(jbStart==jbTemp) {//随即
jta.setText(INFO);//设置文字,如果不添加该行代码,效果就是一直追加文字
jta.append(NEW_LINE);//追加换行符
int x = random.nextInt(NAMES.length);
jta.append("Bingo!\t"+NAMES[x]);//追加文字
}else if(jbClear == jbTemp) {//清空重置
jta.setText(INFO);//设置文字
}
}
public static void main(String[] args) {
new ButtonFrame().setVisible(true);//实例化窗口并可见
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询