在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);
}
}
当按下按钮时,按钮上将显示出姓名,每个人只能在姓名被显示一次之后才能全部被显示出来。
尽管我本来想让名字在按下按钮后显示在屏幕的另一个位置,但是由于标签无法根据处理进行相应的更改,所以我将它显示在按钮上。