如何重新创建元素(SWING)?

时间:2015-04-19 18:33:08

标签: java swing jspinner

在我的表单中我创建了 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
        });

1 个答案:

答案 0 :(得分:2)

您不应每次都重新分配微调器。只需更换其型号。您正在动作侦听器中分配JSpinner的新实例并更改其模型。但是这个新实例不是您面板的一部分而且不可见。从动作侦听器中删除count = new JSpinner(numberModel);。并更改现有微调器的模型。