JOptionPane不打印for循环方法变量



我有这个方法叫做"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;
}

我看到一些可能是问题的行:

  1. articulos.get(art);行不做任何事情,所以我建议删除它。
  2. 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循环中(不使用+=),以便在每个元素上弹出对话框。

相关内容

  • 没有找到相关文章

最新更新