0

我正在努力弄清楚如何在 JOptionPane 中显示我的数组的内容。该数组包括一个项目、价格、数量和优先级。例如,我希望它看起来像这样:“Apples 2.99 2 1”“Cereal 3.99 3 2”我目前将数组输出到控制台,因为我没有能够正确“显示”数组。这是我现在所拥有的:我感谢所有和任何帮助!

import java.text.NumberFormat;

import javax.swing.JOptionPane;

public class ShopList {


public static void main(String[] args) 
{


    String enterName = JOptionPane.showInputDialog(null, "Username: ");


    for (int i = 0; i < 2; i++){
        index = (int) (25 * Math.random());
        String[] options = {"Apples", "Applesauce", "Cereal", "Exit"};
        String input = (String)JOptionPane.showInputDialog(null,
                "Select an Item",
                "Welcome " + enterName + "!",JOptionPane.QUESTION_MESSAGE,null,options,"Apples");

        String itemPrice = JOptionPane.showInputDialog("Enter Price");
        double itemp = Double.parseDouble(itemPrice);



        String[] itemQuantity = {"1", "2", "3", "4", "5"};
        String itemq = (String)JOptionPane.showInputDialog(null,"Enter   Quantity", "Welcome", JOptionPane.QUESTION_MESSAGE, null, itemQuantity, "1");

        String itemsPriority = JOptionPane.showInputDialog("Enter Priority");
        int itempry = Integer.parseInt(itemsPriority);

        ShoppingList shoppingList = new ShoppingList(input,itemp, itemq,     itempry);
        shoppingList.show();


}

}
class ShoppingList
{
String itemNames;
double itemPrice;
String itemQuantity;
int itemsPriority;

public ShoppingList()
{
}
public ShoppingList ( String name, double price, String quantity, int priority)
{
    itemNames = name;
    itemPrice = price;
    itemQuantity = quantity;
    itemsPriority = priority;

}
public void setitemNames(String name)
{
     itemNames = name;
}
public String getitemNames()
{
    return itemNames;
}
public void setitemPrice(double price)
{
     itemPrice = price;
}
public double getitemPrice()
{
    return itemPrice;
}
/*public void setitemQuantity(int quantity)
{
     itemQuantity = quantity;
}
public int getitemQuantity()
{
    return itemQuantity;
}*/
public void setitemsPriority(int priority)
{
     itemsPriority = priority;
}
public int getitemsPriority()
{
    return itemsPriority;
}

public void show()
{
    System.out.println(itemNames);
    System.out.println(itemPrice);
    System.out.println(itemQuantity);
    System.out.println(itemsPriority);
}
}
4

4 回答 4

2

您可以将输出包装在 HTML 中并让 Swing 呈现它...

在此处输入图像描述

public void show() {
    StringBuilder sb = new StringBuilder(64);
    sb.append("<html><table><tr><td>Item</td><td>Price</td><td>Quantity</td><td></td>Priority</tr>");
    sb.append("<tr>");
    sb.append("<td>").append(itemNames).append("</td>");
    sb.append("<td>").append(itemPrice).append("</td>");
    sb.append("<td>").append(itemQuantity).append("</td>");
    sb.append("<td>").append(itemsPriority).append("</td>");
    sb.append("</tr></table></html>");

    JOptionPane.showMessageDialog(null, sb);
}

现在,我将创建一个能够获取一个或多个ShoppingLists并使用类似方法的方法,循环遍历每个购物清单并从中创建一个新行。

于 2012-12-18T05:18:35.330 回答
1
import javax.swing.JOptionPane;

public class ShopList {

    private static String allItems = "";

    public static void main(String[] args) {

        ShoppingList shoppingList = null;
        String enterName = JOptionPane.showInputDialog(null, "Username: ");

        for (int i = 0; i < 2; i++) {
            int index = (int) (25 * Math.random());
            String[] options = { "Apples", "Applesauce", "Cereal", "Exit" };
            String input = (String) JOptionPane.showInputDialog(null,
                    "Select an Item", "Welcome " + enterName + "!",
                    JOptionPane.QUESTION_MESSAGE, null, options, "Apples");

            String itemPrice = JOptionPane.showInputDialog("Enter Price");
            double itemp = Double.parseDouble(itemPrice);

            String[] itemQuantity = { "1", "2", "3", "4", "5" };
            String itemq = (String) JOptionPane.showInputDialog(null,
                    "Enter   Quantity", "Welcome",
                    JOptionPane.QUESTION_MESSAGE, null, itemQuantity, "1");

            String itemsPriority = JOptionPane
                    .showInputDialog("Enter Priority");
            int itempry = Integer.parseInt(itemsPriority);

            shoppingList = new ShoppingList(input, itemp, itemq, itempry);
//          shoppingList.show();

        }

        shoppingList.show();

    }

    public static class ShoppingList {
        String itemNames;
        double itemPrice;
        String itemQuantity;
        int itemsPriority;

        public ShoppingList(String name, double price, String quantity,int priority) {
            itemNames = name;
            itemPrice = price;
            itemQuantity = quantity;
            itemsPriority = priority;
            allItems = allItems + "Name: " + itemNames + " Price: " + itemPrice + " Quantity: " + itemQuantity + " Priority: " + itemsPriority + "\n"; 

        }

        public void setitemNames(String name) {
            itemNames = name;
        }

        public String getitemNames() {
            return itemNames;
        }

        public void setitemPrice(double price) {
            itemPrice = price;
        }

        public double getitemPrice() {
            return itemPrice;
        }

        /*
         * public void setitemQuantity(int quantity) { itemQuantity = quantity;
         * } public int getitemQuantity() { return itemQuantity; }
         */
        public void setitemsPriority(int priority) {
            itemsPriority = priority;
        }

        public int getitemsPriority() {
            return itemsPriority;
        }

        public void show() {
//          System.out.println(itemNames);
//          System.out.println(itemPrice);
//          System.out.println(itemQuantity);
//          System.out.println(itemsPriority);
            JOptionPane.showMessageDialog(null, allItems);
        }
    }
}
于 2012-12-18T05:17:28.013 回答
0

试试这个代码:

public static void main(String[] args) 
{
    ShoppingList shoppingList = null;
     StringBuffer output = new StringBuffer() ; 
    String enterName = JOptionPane.showInputDialog(null, "Username: ");


    .
    .
      //  shoppingList = new ShoppingList(input,itemp, itemq,itempry);
        output.append("\""+input + " " + itemp +" " + itemq + " " + itempry+ "\"\n") ;
        System.out.println(output.toString());
}

  JOptionPane.showMessageDialog(null, output.toString());

}

在此处输入图像描述

于 2012-12-18T05:32:19.937 回答
0

使用 JOption 窗格的消息对话框,您可以显示您想要的模式,例如

公共无效显示(){

JOptionPane.showMessageDialog(null, itemNames + "  " + itemPrice + "  " + itemQuantity + "  " + itemsPriority);

}

于 2012-12-18T05:29:08.920 回答