我有这个方法叫做"cambiar",我从数组"articulos"接收数据,然后我把数据放在我的"datos"变量。但是输出就像这样:
选择要更改的文章xx(我用xx这个词作为参考)
我的代码没有打印&;datos&;变量,我不知道为什么。
public ArrayList<Item> cambiar() {
String datos = "n";
int cantidad;
String nombre;
for (int i = 0; i < articulos.size(); i++) {
cantidad = articulos.get(i).getCantidad();
nombre = articulos.get(i).getP().getNombre();
datos = "Articulo: " + nombre + ", Cantidad:" + cantidad + "n";
}
int art = Integer.parseInt(JOptionPane.showInputDialog(null,"Select which article you would like to changen"+ datos+"xx"));
articulos.get(art);
articulos.get(art).getCantidad();
int cuan = Integer.parseInt(JOptionPane.showInputDialog(null, "How many would you like buy?"));
articulos.get(art).setCantidad(cuan);
return articulos;
}
我看到一些可能是问题的行:
articulos.get(art);
行不做任何事情,所以我建议删除它。- 在
datos = "Articulo: " + nombre + ", Cantidad:" + cantidad + "n";
行有两个问题。首先,我假设你想要显示所有存在的文章,所以你需要用+=
替换=
来将所有字符串添加到一个。第二个是您在JOptionPane
中使用n
,这将不起作用。在JOptionPane
中,您可以通过仅使用HTML而不是java字符串语法来样式化消息。除了替换"</br>"
中的所有"n"
之外,您还可以在消息之前添加"<html>"
(对于更可靠的代码,在此之后添加"</html>"
)。例如:
public ArrayList<Item> cambiar() {
String datos = "<br/>";
int cantidad;
String nombre;
for (int i = 0; i < articulos.size(); i++) {
cantidad = articulos.get(i).getCantidad();
nombre = articulos.get(i).getP().getNombre();
datos += "Articulo: " + nombre + ", Cantidad:" + cantidad + "<br/>";
}
int art = Integer.parseInt(JOptionPane.showInputDialog(null,"<html>Select which article you would like to change<br/>"+ datos+"xx</html>"));
articulos.get(art);
articulos.get(art).getCantidad();
int cuan = Integer.parseInt(JOptionPane.showInputDialog(null, "How many would you like buy?"));
articulos.get(art).setCantidad(cuan);
return articulos;
}
似乎您的articulos列表是空的,并且for循环不是事件开始
我不确定你想用这个方法/消息做什么,即使你设法修复你的"articulos"列表,你的"datos"变量只会得到你列表的最后一个元素。要么使用+=复合赋值操作符组合数据,要么将其余代码移动到for循环中(不使用+=),以便在每个元素上弹出对话框。