LoginSignup
0
1

More than 3 years have passed since last update.

javaでGUIの練習

Last updated at Posted at 2020-05-11

javaのGUIの練習のためにルーレットを作りました。

Gui.jajva

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);
    }
}

ボタンを押すとボタンのところに名前が表示され、1回表示されたら全員表示されるまで表示できないようになっています。

本当はボタンを押したら画面の別の場所に名前が表示されるようにしたかったのですが、ラベルには処理に合わせた変更ができないようだったのでボタンに表示をしました。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1