Вопрос:

как заставить мою кнопку выбрать случайное слово, а затем снова после

java arrays int element elements

81 просмотра

2 ответа

18 Репутация автора

Я написал программу для распечатки случайного слова и его определения в текстовое поле, когда кнопка нажата один раз. Я хочу, чтобы он печатал другое случайное слово и определение при повторном нажатии кнопки. Есть идеи? Я новичок в кодировании, поэтому, пожалуйста, примите это во внимание.

Это то, что я до сих пор:

public class RandomWord extends JFrame{
private JTextField wordField;
private JTextField defField;
private JButton nextButton;
private String words[] = {"Petrichor:",//0
                        "Iterate:",//1
                        "Absquatulate:",//2
                        "Anhuiliform:",//3
                        "Argle-bargle:","Argus-eyed:",//4
                        "Automy:",//5
                        "Benthos:",//6
                        "Bibliopole:",//7
                        "Bilboes:",//8
                        "Bruxism:",//9
                        "Borborygmus:",//10
                        "Calipygian:",//11
                        "Callithumpian:",//12
                        "Cereology:",//13
                        "Chad:",//14
                        "Chiliad:"};//15

private String def[] = {"The smell of earth after rain.",//0
                        "To utter or perform repeatedly.",//1
                        "To leave somewhere abruptly.",//2
                        "Resembling an eel.",//3
                        "Copious but meaningless talk or writing.",//4
                        "Vigilant, refering to Argos a Greek mythological watchman with a hundred eyes.",//5
                        "The casting off of a limb or other part of the body by an animal under threat, such as a lizard.",//6
                        "The flora and faunda on the bottom of a sea or lake.",//7
                        "A person who buys and sells books, especially rare ones",//8
                        "An iron bar with sliding shackles, used to fasten prisoners' ankles.",//9
                        "Involantary and habitual grinding of the teeth.",//10
                        "A rumbling or gurgling noise in the intestines.",//11
                        "Having shapely buttocks.","Like a discordant band or a noisy parade.",//12
                        "The study or investigation of crop circles.",//13
                        "A piece of waste paper produced by punching a hole.",//14
                        "A thousand things or a thousand years."};//15

public RandomWord(){
    super("Cool Words -1.5");
    setLayout(new FlowLayout());

    int idx = new Random().nextInt(words.length);
    final String randomWord = words[idx];
    final String randomDef = def[idx];

    wordField = new JTextField("Petrichor",20);
    add(wordField);
    defField = new JTextField("The smell of earth after rain",20);
    add(defField);
    nextButton = new JButton("Next");
    add(nextButton);

    nextButton.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent arg0) {
            wordField.setText(randomWord);
            defField.setText(randomDef);

        }
    });
}

}

Автор: CapnCoin Источник Размещён: 22.08.2016 08:38

Ответы (2)


0 плюса

4188 Репутация автора

Вы выбираете случайное слово и определение в конструкторе было вызвано. Вы должны изменить это, чтобы выбрать случайное слово и определение, когда вы щелкаете мышью (внутри actionPerformedметода).

Попробуйте с этим:

public RandomWord(){
    super("Cool Words -1.5");
    setLayout(new FlowLayout());

    wordField = new JTextField("Petrichor",20);
    add(wordField);
    defField = new JTextField("The smell of earth after rain",20);
    add(defField);
    nextButton = new JButton("Next");
    add(nextButton);

    nextButton.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent arg0) {

            // this method is executed when you clicked;
            // The random word and definition must be choose at this moment.
            int idx = new Random().nextInt(words.length);
            wordField.setText(words[idx];);
            defField.setText(def[idx]);

        }
    });
}
Автор: David Pérez Cabrera Размещён: 22.08.2016 08:41

0 плюса

199 Репутация автора

Попробуйте удалить последнее ключевое слово в ваших строках. Final означает, что значение String не может быть изменено после его объявления:

   String randomWord = words[idx];

   String randomDef = def[idx];
Автор: Abdulgood89 Размещён: 22.08.2016 08:57
Вопросы из категории :
32x32