if (combostyle.getSelectedItem().equals(" ") || (comboSize.getSelectedItem().equals(" ")) || (comboclr.getSelectedItem().equals(" ")) ) {
lblqtot.setText(String.valueOf("Please complete the form"));
}
else if (comboquant.getSelectedItem().equals("15")) {
int totals = Integer.parseInt(lblTotal.getText());
int quantity = 15;
int total = totals * quantity;
String total2 = String.valueOf(total);
lblqtot.setText(total2);
label1.setText(total2);
repaint();
this.repaint();
super.repaint();
}
}
有一个问题,总价(lblqtot)的标签没有写入total2的值——基本上,我有一个总价,我需要乘以组合框,所以如果组合框选择(数量)等于15,那么总价乘以15得到总价。希望这有意义…
目前,绝对没有发生与标签,但我没有得到错误?
问题可能出在你的JLabel上——即使你给它赋了一个新值,它也没有得到更新。JLabel位于JFrame中,该JFrame一旦创建,就倾向于保持其元素的原样。你需要做的是刷新框架:
frame.invalidate();
frame.validate();
frame.repaint();
您的问题是您调用getSelectedItem()
返回Object
。您可以将其转换为int
(例如((Integer)comboquant.getSelectedItem()).intValue() == 15
),或者如果项目的索引对应于其值,则可以使用getSelectedIndex()
(或getSelectedIndex() + 1
,如果您从1
开始)。
或者,如果你用int
值管理一个数组,就像它们在列表中一样,那么你可以这样做:arr[comboStyle.getSelectedIndex()]