我正在使用JLabels编写一种购物清单,我有一个可以从列表中删除项目的按钮。我写了一些代码来使它变得紧密,并且所有JLabel都向上移动直到所有空间都被填满。问题是我必须按下每个JLabel的按钮才能移动。我想知道是否有人可以告诉我如何使用while循环在循环中运行代码,直到没有任何事情发生(这意味着没有间隙,一切都在顶部)
String remove1 = ListSlot1.getText();
String remove2 = ListSlot2.getText();
String remove3 = ListSlot3.getText();
if(remove1=="")
{
ListSlot1.setText(ListSlot2.getText());
ListSlot2.setText("");
}
if(remove2=="")
{
ListSlot2.setText(ListSlot3.getText());
ListSlot3.setText("");
}
if(remove3=="")
{
ListSlot3.setText(ListSlot4.getText());
ListSlot4.setText("");
}
答案 0 :(得分:1)
首先remove3==""
不是Java中String
比较的方式。
您可以使用
if (remove3 == null || remove3.trim().isEmpty()) {...}
或
if (remove3 == null || remove3.trim().equals("")) {...}
,而不是...
其次,您应该使用JList
代替。有关详细信息,请查看How to use Lists。
答案 1 :(得分:0)
boolean changed = false;
do {
do stuff;
if (something has changed) {
changed = true;
}
} while (changed);