3 回答

TA貢獻1794條經驗 獲得超8個贊
您應該將結果存儲在某處以便稍后設置文本。
例如,您可以將字符存儲在StringBuilder:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
Stack stack = new Stack();
int number = (int) (Integer.parseInt(jTextField1.getText()));
while (number > 0) {
stack.push(number % 10);
number = number / 10;
}
StringBuilder sb = new StringBuilder();
while (!stack.empty()) {
sb.append(stack.pop());
if (!stack.empty()) {
sb.append(",");
}
}
jLabel2.setText(sb.toString());
}

TA貢獻1797條經驗 獲得超6個贊
您將 jlabel 的文本始終設置為零,因為此時“數字”將始終為零。但是您將數字序列打印到控制臺。您可能想將它們連接成一個字符串并相應地設置 jlabel 的文本。您可以像這樣使用 StringBuilder:
StringBuilder sb = new StringBuilder();
while (!stack.empty()) {
sb.append(stack.pop());
if (!stack.empty()) {
sb.append(", ");
}
jLabel2.setText(sb.toString())
}

TA貢獻1772條經驗 獲得超6個贊
問題是您在number標簽上打印的值。那時 number 總是等于0。您想要的是打印堆棧中的值。例子:
StringBuilder out = new StringBuilder();
while (!stack.empty())
{
out.append( stack.pop());
if (!stack.empty())
{
out.append(",");
}
}
jLabel2.setText(out.toString());
添加回答
舉報