用JAVA GUI编写一个点名系统程序
package Text1;
//import java.awt.Font;
//import java.awt.event.ActionEvent;
//import java.awt.event.ActionListener;
//import javax.swing.JButton;
//import javax.swing.JFrame;
//import javax.swing.JTextField;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import static javax.swing.JFrame.EXIT_ON_CLOSE;
public class Text extends Thread implements ActionListener {
String[] s= {"1","2","3","4","5","6","7","8","9","10"};
JFrame frame=new JFrame("点名使用");
JButton btn=new JButton("停止");
JButton btn1=new JButton("结束");
JTextField tf=new JTextField();
public Text(){
frame.setLayout(null);
frame.setBounds(300, 400, 300, 350);//窗口大小
tf.setBounds(80, 40, 150, 40);
//tf.setFont(new Font("Monospaced", 23, 30));//文本框
btn.setBounds(30, 160, 100, 100);//按钮大小
btn1.setBounds(150, 160, 80, 100);
frame.add(btn);
frame.add(btn1);
frame.add(tf);
frame.setVisible(true);
btn.addActionListener(this);//注册监听器
btn1.addActionListener(this);
}
public void run(){
for(int i=1;i<=10;i++){
tf.setText(s[i-1]);
try {
sleep(80);//速度
} catch (InterruptedException e) {
e.printStackTrace();
}
if(i==10)i=1;
}
}
public void actionPerformed (ActionEvent e) {
if (e.getSource() == btn) {
String str;
if (btn.getText().equals("开始")) {
this.resume();//恢复线程的执行
btn.setText("停止");
} else if (btn.getText().equals("停止")) {
this.suspend();//暂停线程执行
btn.setBackground(Color.LIGHT_GRAY);
str = tf.getText();
JOptionPane.showMessageDialog(null, String.format("抽到的幸运同学为:%s", str), "点名系统", JOptionPane.CANCEL_OPTION);
btn.setText("开始");
}
} else if (e.getSource() == btn1) {
if (btn1.getText().equals("结束")) {
closeThis();
}
//创建一个新的窗口来盛放结果
JFrame frame = new JFrame("最终结果");
frame.setBounds(600, 300, 320, 260);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
Container c = frame.getContentPane();//网格布局
c.setLayout(new GridLayout(5, 1));
frame.setVisible(true);
JTextField tf_A = new JTextField(tf.getText(),10);
JTextField tf_B = new JTextField(tf.getText(),10);
JTextField tf_C = new JTextField(tf.getText(),10);
JTextField tf_D = new JTextField(tf.getText(),10);
JTextField tf_E = new JTextField(tf.getText(),10);
JLabel jl_A = new JLabel("第一名同学为");
JLabel jl_B = new JLabel("第二名同学为");
JLabel jl_C = new JLabel("第三名同学为");
JLabel jl_D = new JLabel("第四名同学为");
JLabel jl_E = new JLabel("第五名同学为");
frame.add(jl_A);
frame.add(tf_A);
frame.add(jl_B);
frame.add(tf_B);
frame.add(jl_C);
frame.add(tf_C);
frame.add(jl_D);
frame.add(tf_D);
frame.add(jl_E);
frame.add(tf_E);
}
}
private void closeThis() {
frame.dispose();
}
public static void main(String[] args) {
Text m=new Text();
m.start();
}
}
就是弹出抽到的人后,将数据存入第二个窗口的第一个文本框,然后删除第一个窗口的数据,以此类推直到随机抽完五名同学,并将数据存入最终结果。
就是在第一个窗口抽五名同学,按下结束后在第二个窗口能展现出五名同学的名字
目前代码存在什么问题?哪里实现不了。
我给你解决思路吧:
创建一个对话框类,在实例化的时候将参数传入。
Swing设计的话,可以使用NetBeans可视化编程。