如何重新创建元素(SWING)?
How to recreate element (SWING)?
在我的表单中 我创建了 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
});
您不应该每次都重新分配微调器。只需更换其型号即可。您正在为您的动作侦听器分配 JSpinner
的新实例并更改其模型。但是这个新实例不是您面板的一部分并且不可见。从动作侦听器中删除 count = new JSpinner(numberModel);
。并更改现有微调器的模型。
在我的表单中 我创建了 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
});
您不应该每次都重新分配微调器。只需更换其型号即可。您正在为您的动作侦听器分配 JSpinner
的新实例并更改其模型。但是这个新实例不是您面板的一部分并且不可见。从动作侦听器中删除 count = new JSpinner(numberModel);
。并更改现有微调器的模型。