2017-02-09 7 views
0

Ich erstellte eine Aufzählung mit ein paar Worten. Ich möchte ein zufällig ausgewähltes Wort auf der GUI anzeigen lassen, bin mir jedoch nicht sicher, wie das Zufallswort tatsächlich angezeigt werden soll. Wenn weitere Informationen benötigt werden, zögern Sie nicht, lassen Sie es mich wissen, danke! HierAnzeigen einer Aufzählung in gui

ist die Enum:

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

} 

Hier ist der Ansicht, wo ich ein Wort angezeigt werden soll:

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

Nur eine Anmerkung, ich habe eine Hauptklasse, die die Ansicht ausführt. – DjDamage

+1

"' return name_string (0, 1) + name_string (1); '" Oder, 'return name;'. Oder überschreibe "toString()" nicht an erster Stelle. –

+2

Fragen Sie [wie man einen zufälligen Wert aus einem Enum wählt] (http://stackoverflow.com/questions/1972392/java-pick-a-random-value-from-an-enum)? (Übrigens, es ist nicht wirklich angebracht, hier ein Enum zu verwenden. Verwenden Sie einfach eine 'List '). –

Antwort

0

benötigen Sie den Code unten:

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

Was Es wird eine Zufallszahl (rand) von 1 bis zur Anzahl der Wörter mit der Klasse Random erstellt und dann das Element mit Index ran ausgedruckt d (Words.values()[rand]). Words.values() gibt ein Array aller Wörter in der Enumeration zurück.

+1

OP möchte auf der GUI, nicht auf der Konsole drucken. – shmosel

+0

@smossel Ich glaube nicht, dass das hier das Problem ist. Jedoch, wenn es auf der GUI auf welchem ​​Element ist? Auf einem Etikett? Dann wird dies anstelle von System.out benötigt: 'label = new Label (Words.values ​​() [rand]); frame.add (label); 'wobei frame der Hauptrahmen oder stattdessen das Panel ist, in dem das Label platziert wird. – Thanasis

+0

Ich habe keine Ahnung. Deshalb habe ich nicht geantwortet. – shmosel

Verwandte Themen