2017-02-09 5 views
0

私は数語で列挙を作成しました。私はguiに表示されている単語をランダムに選択したいと思いますが、ランダムな単語を実際に表示させる方法は不明です。これ以上の情報が必要な場合は、私にお知らせください、お気軽にお気軽に!ここでguiで列挙を表示

は列挙型である:ここでは

public enum Words { 
    RIFLE,RAILROAD,FARM,SLOPE,LEPERACHAUN,SONG,CREATOR,TENT,FORM,FOOD,DINNER,TICKET,NOVEL,SPARK, 
    KITTEN,GUST,SMOKE,HORSE,LOSS,BRAKE,JAZZ,BASEBALL,SIZZLE,LEOPARD,SPARROW,EGG,QUARTER,MULTIPLE,DUPLEX,VOICE, 
    GNU,UNDERWEAR,SAND,BED,CANNON,NOTEBOOK,CAUSE,DIRT,PYTHON,SWING,WORD,RAY,SNOW,TRUCK,SILVER,NERVE,DEATH, 
    SEASHORE,WATER,COBWEB; 

    public String toString() { 
     String name = name(); 
     return name.substring(0, 1) + name.substring(1); 
    } 

} 

は、私は、ディスプレイに単語をしたいビューは、次のとおりです。

import java.awt.Color; 
import java.awt.Font; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.awt.event.MouseEvent; 
import java.awt.event.MouseListener; 

import javax.swing.JButton; 
import javax.swing.JLabel; 

import acm.graphics.GLabel; 
import acm.program.Program; 

public class HangmanView implements MouseListener, ActionListener { 

    private static final int DEFAULT_SIZE = 600; 
    private static final Font FONT = new Font("Helvetica", Font.BOLD, 20); 
    private JLabel statusMsg; 
    private Words words; 
    HangmanGraphics Content = new HangmanGraphics(DEFAULT_SIZE/2,DEFAULT_SIZE/2); 
    Hangman game;   // the controller 
    HangmanModel model; // the model 

public HangmanView(Hangman game) { 

    final GLabel label = new GLabel(words.toString()); 
    label.setFont(FONT); 
    game.add(label, DEFAULT_SIZE/4, DEFAULT_SIZE/4); 

} 
} 
+0

ただ、私はビューを実行するメインクラスがあります。 – DjDamage

+1

"return name.substring(0、1)+ name.substring(1);' "または、' return name; '。あるいは、最初に 'toString()'をオーバーライドしないでください。 –

+2

[enumからランダムな値を選ぶ方法](http://stackoverflow.com/questions/1972392/java-pick-a-random-value-from-an-enum)を聞いていますか? (BTW、ここで列挙型を使用するのは本当に適切ではありません。単にリストを使用してください)。 –

答えて

0

あなたが怒鳴るコード必要があります。

import java.util.Random; 

public static void main(String[] args){ 
    Random random = new Random(); 
    int rand = random.nextInt(Words.values().length); 
    System.out.println(Words.values()[rand]); 
} 

何をRandomクラスを使用して1から単語数までの乱数(rand)を作成し、インデックスランで要素をプリントアウトしますd(Words.values()[rand])。 Words.values()は、列挙内のすべての単語の配列を返します。

+1

OPはコンソールではなくGUIに印刷します。 – shmosel

+0

@shmosel私はこれがここで問題だとは思わない。しかし、それがGUI上のどの要素であれば?ラベルについて? System.outの代わりにこれが必要です: 'label = new Label(Words.values()[rand]); frame.add(label); 'フレームがメインフレームであるか、代わりにラベルが配置されるパネルです。 – Thanasis

+0

私は分かりません。それが私が答えなかった理由です。 – shmosel

関連する問題