java - 如何将 JTextfield 的 setText 设置为带有数组的方法

标签 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] = "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;
    }

然后我有另一个 GUI 类,如何在执行操作时使结果显示在 JTextField 中?

    private void shoutOutMessageActionPerformed(java.awt.event.ActionEvent     evt) {                                                
  JTextArea.setText(????); 
}

谢谢!

最佳答案

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

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

关于java - 如何将 JTextfield 的 setText 设置为带有数组的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35513780/

相关文章:

javascript - 从一组日期中获取每周和每月数据的最佳方法是什么?

c# - 为什么 `new int[x]{}` 无效?

java - Activity 指示器和线程黑莓

javascript - 使用 handlebars.js 模板以数组中的最后一项为条件

java - Java Swing程序运行时显示不一致

java - 如何将 JGraph 转换为玻璃板?

java - 如何让 JButton 知道它在哪个面板上被单击?

java - 如何在 Java 7 中使用 AndroidStudio 和 DDMS Monitor

java - 遇到变量无法打印和\n 无法工作的问题

Android 中的 Java Xml 解析器