在我的表单中我创建了 JSpinner和JComboBox元素。根据JComboBox的变化,我必须使用不同的Spinner模型。所以在ComboBox监听器中我写了 spinner = new JSpinner(newModel),但它在表单上什么都不改变。 如何重新创建元素以查看差异?
// Create default Spinner
count = new JSpinner();
// Trying to replace spinner
product.addActionListener(e -> {
JComboBox source = (JComboBox) e.getSource();
String selectedItem = (String) source.getSelectedItem();
...
SpinnerNumberModel numberModel = getNewNumberModel(...)
count = new JSpinner(numberModel);
count.setModel(numberModel);
// repaint(); revalidate() - also don't working
});
答案 0 :(得分:2)
您不应每次都重新分配微调器。只需更换其型号。您正在动作侦听器中分配JSpinner
的新实例并更改其模型。但是这个新实例不是您面板的一部分而且不可见。从动作侦听器中删除count = new JSpinner(numberModel);
。并更改现有微调器的模型。