Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将JTextfield的text设置为具有数组的方法_Java_Arrays_Swing_Methods_Jtextarea - Fatal编程技术网

Java 如何将JTextfield的text设置为具有数组的方法

Java 如何将JTextfield的text设置为具有数组的方法,java,arrays,swing,methods,jtextarea,Java,Arrays,Swing,Methods,Jtextarea,我有一个名为ShoutBox的类,它有一个数组和一个方法: String messages[] = new String[10]; //declare 10 arrays messages[0] = "Miley"; messages[1] = "Katy"; messages[2] = "Gaga"; messages[3] = "Beyonce"; messages[4] = "Taylor"; messages[5] = "Mi

我有一个名为ShoutBox的类,它有一个数组和一个方法:

   String messages[] = new String[10];
    //declare 10 arrays
    messages[0] = "Miley";
    messages[1] = "Katy";
    messages[2] = "Gaga";
    messages[3] = "Beyonce";
    messages[4] = "Taylor";
    messages[5] = "Missy";
    messages[6] = "Nicki";
    messages[7] = "Adele";
    messages[8] = "Rihanna";
    messages[9] = "Selena";

    String x = new ShoutBox().shoutOutCannedMessage(messages);
    System.out.println(x);

    public String shoutOutCannedMessage(String[] messages) {
    for (int i = 0; i < messages.length; i++) {
        System.out.println(i+". "+messages[i]); 
    }

    System.out.print("Select a message: ");
    int n = scan.nextInt();
    String message = messages[n];
    return message;
    }

谢谢

假设您希望显示数组中的下一个短语以响应事件,而不是一次显示所有短语:

  • 为类指定一个int索引计数器字段,例如
    private int shoutIndex
    ,并将其初始化为0
  • 在任何相关事件上(例如在ActionListener中),增加该索引,例如,
    shoutIndex++
  • 然后使用余数运算符确保索引不大于数组的长度:
    shoutIndex%=messages.length
  • 然后使用索引
    messages[shoutIndex]
    从数组中获取相应的项,并使用它设置JTextField的文本

感谢您的意见。我刚开始学习Java,所以我不太明白你的意思:(..那么我在哪里声明
private int shoutIndex
变量?它不是与上面
shoutontannedMessage
中的
I
变量相同吗?@VincentNg:您将它声明为GUI的一个字段,即带有JTextField的类。不,它与
I
不同,因为for循环在这个类中不起作用ituation。我想你正在考虑继续使用for循环,如果是这样,你会想阅读更多关于事件驱动编程的内容,看看为什么它不合适。现在我好像迷路了:D我可以声明索引及其增量,但当我这样做时,
shoutIndex%=messages.length
找不到
消息
。@VincentNg:编辑你的帖子,显示你的最新代码,最好是a,让我们看看有什么问题
    private void shoutOutMessageActionPerformed(java.awt.event.ActionEvent     evt) {                                                
  JTextArea.setText(????); 
}