我正在努力弄清楚如何在JOptionPane中显示我的数组的内容。该数组包括项目,价格,数量和优先级。例如,我希望它看起来像这样: “苹果2.99 2 1” “谷物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);
}
}
答案 0 :(得分: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
并使用类似方法的方法,遍历每个购物清单并从中创建一个新行。
答案 1 :(得分: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);
}
}
}
答案 2 :(得分:0)
使用JOption窗格的消息对话框您可以显示所需的图案,例如
public void show() {
JOptionPane.showMessageDialog(null, itemNames + " " + itemPrice + " " + itemQuantity + " " + itemsPriority);
}
答案 3 :(得分: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());
}