Java JOptionPane со стеком LIFO

Я беру курс по Java, и теперь я застрял в проблеме, которая, вероятно, очень очевидна и ясна, но я не могу найти никакого ответа в Интернете, поэтому я решил приехать сюда и лично спросить вас, ребята.

Итак. JOpitionPane для отображения стека LIFO (Last In First Out). В моем коде ниже я использую System.out.println в качестве примера, чтобы показать, что я хочу, чтобы он делал. Что мне нужно сделать, это отобразить его в окне JOptionPane.showMessageDialog. Я как-то не могу понять, создание массива для суммирования количества, которое вы хотите отобразить, это мое предположение, но я не знаю, как двигаться дальше отсюда.

Большое спасибо тому, кто смог ответить на мой вопрос.

Вот мой упрощенный код для этого вопроса.

import java.util.Stack;
import javax.swing.JOptionPane;

public class Test1 {
public static void main(String args[]) {
    new Test1();

}

public Test1() {

    boolean status = false;

    Stack<String> lifo = new Stack<>();

    while (!status) {
        String s = (JOptionPane.showInputDialog("Write something"));

        if (s == null) {

            status = true;

        } else {
            lifo.add(s);
        }

    }
    if (status == true) {
        Double num = Double.parseDouble(JOptionPane.showInputDialog("How many of latest Input would you like to see?"));
        for (int i = 0; i < num; i++) {
            System.out.println(lifo.pop()); //Here is where i would want 
            System.out.print(',');          //JOptionPane.showMessageDialog instead.
        }

1 ответ

Вы должны построить строку в памяти, а затем использовать ее в качестве сообщения для showMessageDialog. Что-то вроде:

String msg = "";
for (int i = 0; i < num; i++) {
    if (i > 0)
       msg += ",";  // could replace this with a newline to have the numbers stacked
    msg += lifo.pop();
}
JOptionPane.showMessageDialog("title", msg, ....);
Другие вопросы по тегам