簡體   English   中英

無法將數組傳遞給另一個類

[英]Trouble passing an array to another class

我一直在通過向我制作的一個程序中添加一個使GUI成為類的類來練習揮桿。 我目前無法將數組發送到Visual類。

我現在要完成的操作是讓按鈕上的actionlistener運行並將標簽更改為EightBall類中數組的隨機元素的輸出。

我的問題在於我不知道如何將數組和隨機對象發送給它。

如何將信息傳遞給actionPerformed方法,以便可以從print方法訪問Answersrnd

import java.util.Scanner;
import java.util.Random;

public class EightBall {    
  public void print() {
 Scanner Scan = new Scanner(System.in);
 System.out.print("What is your question?");
 String question = Scan.next(); 

String [] Answers;
Answers = new String [8];
Answers[0] = "Unlikely";
Answers[1] = "Positive";
Answers[2] = "Yes";
Answers[3] = "No";
Answers[4] = "Ask Again Later";
Answers[5] = "Maybe";
Answers[6] = "ugh";
Answers[7] = "blag";
int rnd = new Random().nextInt(Answers.length); }

}

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing. *;
 public  class Visual extends EightBall implements ActionListener {
 JTextField textField;
JButton button;
 JLabel label;
 public static void main(String[]args) {
    Visual vis = new Visual();
    vis.go();
}   
        public void go(){

            EightBall ball = new EightBall();
            label = new JLabel("Whate is you question?");
        JFrame frame = new JFrame();
        button = new JButton("Ask");
        textField = new JTextField(20);
        JPanel panel = new JPanel();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    panel.add(label);
    panel.add(textField);
    panel.add(button);
    frame.add(panel);
    frame.setVisible(true);
    frame.setTitle("Magic Eight Ball");
    frame.setSize(1000,1000);
    button.addActionListener(this);
        }

    public void actionPerformed(ActionEvent event) {
        EightBall eight = new EightBall();
        eight.print();
        label.setText();
}
    }

EightBall類中更改print()方法以返回一個String以便您可以在其他類中使用相關數據。 像這樣:

public String print(){
    //your code
    return Answers[rnd];
}

這樣,您可以在actionPerformed(ActionEvent)方法中訪問它。 像這樣:

public void actionPerformed(ActionEvent event) {;
    label.setText(new EightBall().print());
}

PS Java約定是camelCase用於字段/局部變量( Answers應該是answersScan應該是scan

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM