【问题标题】:How to setText of JTextfield to a method with an array如何将 JTextfield 的文本设置为带有数组的方法
【发布时间】:2016-06-01 12:38:06
【问题描述】:

我有一个名为 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(????); 
}

谢谢!

【问题讨论】:

    标签: java arrays swing methods jtextarea


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的意见。我刚开始学习Java,所以我不太明白你的意思:( .... 那么我在哪里声明private int shoutIndex 变量?它与我在上面shoutOutCannedMessage 中的i 变量不一样?
    • @VincentNg:您将其声明为 GUI 的一个字段,即带有 JTextField 的类。不,它与i 不同,因为 for 循环在这种情况下不起作用。我认为您正在考虑仍然使用 for 循环,如果是这样,您将需要阅读更多关于事件驱动编程的内容,以了解它为什么不合适。
    • 现在我就像迷路了:D 我可以声明索引并增加它但是当我这样做时shoutIndex %= messages.length messages 找不到...
    • @VincentNg:编辑你的帖子,显示你的最新代码,最好是minimal reproducible example,让我们看看有什么问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    • 2017-10-15
    • 2018-10-03
    • 2015-10-06
    • 1970-01-01
    • 2011-07-09
    相关资源
    最近更新 更多