我想在JOptionPane中显示for循环的输出。

16 浏览
0 Comments

我想在JOptionPane中显示for循环的输出。

我有一个ArrayList,我想循环遍历ArrayList并将arraylist中的项目打印到JOptionPane.showInput对话框中。但是,我如何在JOptionPane中使用循环结构?下面的代码显示多个JOptionPane窗口,显然它会因为它在一个循环中。有人可以修改它,只显示一个JOptionPane窗口,并在一个窗口中输出所有消息吗?

public void getItemList(){
          StringBuilder message = new StringBuilder();
          for (int i=0; i

0
0 Comments

问题出现的原因是需要在JOptionPane中显示for循环的输出结果。但是JOptionPane的showInputDialog方法只能显示一个输入对话框,并不能直接显示for循环的输出。

解决方法是将for循环的输出结果存储在一个字符串中,然后将该字符串作为参数传递给JOptionPane的showMessageDialog方法,以显示输出结果。

以下是解决方法的示例代码:

import javax.swing.JOptionPane;
public class Main {
    public static void main(String[] args) {
        StringBuilder output = new StringBuilder();
        for (int i = 0; i < 10; i++) {
            output.append("Output " + i + "\n");
        }
        JOptionPane.showMessageDialog(null, output.toString());
    }
}

在上述代码中,通过使用StringBuilder来构建输出结果的字符串。在每次循环中,将输出结果追加到StringBuilder中,并在每个输出结果之间添加换行符。

最后,将StringBuilder转换为字符串,并将其作为参数传递给JOptionPane的showMessageDialog方法,以显示输出结果。

通过这种方法,我们可以在JOptionPane中显示for循环的输出结果。

0
0 Comments

问题的原因是在循环中使用了JOptionPane.showInputDialog()方法,导致每次循环都会弹出一个输入对话框,而不是将循环的输出结果以对话框的方式一次性显示出来。

为了解决这个问题,可以将循环中的输出结果追加到一个StringBuilder对象中,然后在循环结束后,使用JOptionPane.showInputDialog()方法将StringBuilder对象的内容以对话框的形式显示出来。

以下是修改后的代码示例:

import java.util.List;
import javax.swing.JOptionPane;
public class Main {
    List cartItems = List.of("Tomato", "Potato", "Onion", "Cabbage");
    public static void main(String[] args) {
        // Test
        new Main().getItemList();
    }
    public void getItemList() {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < this.cartItems.size(); i++) {
            sb.append((i + 1) + "." + this.cartItems.get(i)).append(System.lineSeparator());
        }
        JOptionPane.showInputDialog(sb);
    }
}

运行上述代码后,将会显示一个包含循环输出结果的对话框。

0
0 Comments

问题的出现的原因是在for循环中,每次迭代都将一个值添加到字符串变量中,导致字符串的拼接操作重复进行,这样会浪费大量的时间和内存资源。解决方法是使用StringBuilder类来代替String类,在循环中进行字符串的拼接操作。StringBuilder类是可变的,可以高效地执行字符串的拼接操作。

下面是修改后的代码示例:

public static void getItemList(){
    StringBuilder value = new StringBuilder();
    for (int i=0; i

使用StringBuilder类的好处是它提供了append()方法来追加字符串,而不是每次都创建一个新的字符串对象。这样可以避免大量的内存分配和回收操作,提高性能。

关于这个问题,你可以参考stackoverflow.com/q/7817951/10819573上的讨论,了解更多关于在循环中使用StringBuilder的优势和使用方法。

0