在Java中练习GUI

为了练习Java的GUI,我制作了一个轮盘赌。


package sample;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import java.util.Random;
import java.util.Arrays;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.awt.Container;
import java.awt.BorderLayout;
public class Gui extends JFrame{
    static String theName="hello world";
    int count=11;
    String[] names = {"Aさん","Bさん","Cさん" ,"Dさん","Eさん","Fさん","Gさん","Hさん","Iさん","Jさん","Kさん"};//ルーレット 
    public Gui() {
        // TODO 自動生成されたメソッド・スタブ
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100,100,640,480);
        JButton btn1=new JButton("ボタン");
        add(btn1);  /// ボタン追加 
        setSize(250,250);
        JLabel label = new JLabel(theName);

        JPanel p = new JPanel();
        p.add(label);   //ラベル追加   

        Container contentPane = getContentPane();
        contentPane.add(p, BorderLayout.NORTH);


        btn1.addActionListener(new ActionListener(){

            @Override

            /**
             * ルーレット乱数部分
             */
            public void actionPerformed(ActionEvent e) {

                int i=0;
                count--;
                do{ i = rnd();
                if(count==0) {
                    System.out.println("全員回答しました");
                    names[0]="Aさん";
                    names[1]="Bさん";
                    names[2]="Cさん";
                    names[3]="Dさん";
                    names[4]="Eさん";
                    names[5]="Fさん";
                    names[6]="Gさん";
                    names[7]="Hさん";
                    names[8]="Iさん";
                    names[9]="Jさん";
                    names[10]="Kさん";
                    count=11;


                    break;

                }
                }while(names[i]=="0");


                btn1.setLabel(names[i]);
                System.out.println("のこり"+count +"人");


                names[i]="0";


            }
            private int rnd() {
                // TOD動生成されたメソッド・スタブ

                Random rand = new Random();
                int val = (rand.nextInt(11));
                return val;
            }
        });
    }
    public static void main(String[] args) {
        Gui frm=new Gui();
        frm.setVisible(true);
    }
}

当按下按钮时,按钮上将显示出姓名,每个人只能在姓名被显示一次之后才能全部被显示出来。

尽管我本来想让名字在按下按钮后显示在屏幕的另一个位置,但是由于标签无法根据处理进行相应的更改,所以我将它显示在按钮上。

广告
将在 10 秒后关闭
bannerAds