2015-11-13 4 views
1

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

So .. 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. 
     } 

ответ

0

Вы должны построить строку в памяти, а затем использовать ее как сообщение для 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, ....); 
+0

ahh да спасибо, это делает его еще одной проблемой в коде: P –

Смежные вопросы