我正在使用JavaSwing概念。combobox的值类似于“GST 18.00%”。我只需要(18.00)作为浮动。有没有办法完成这项任务

我正在使用JavaSwing概念。combobox的值类似于“GST 18.00%”。我只需要(18.00)作为浮动。有没有办法完成这项任务,java,swing,Java,Swing,我正在使用JavaSwing概念。combobox的值类似于GST 18.00%。我只需要18.00作为浮动。有任何方法可以完成此任务…不要向组合框中添加字符串。相反,创建一个值类并添加该类的实例 Swing调用模型对象的方法来渲染它们;您可以通过在值类中重写该方法来利用这一点: public class GSTValue { private final float rate; public GSTValue(float rate) { this.rate =

我正在使用JavaSwing概念。combobox的值类似于GST 18.00%。我只需要18.00作为浮动。有任何方法可以完成此任务…

不要向组合框中添加字符串。相反,创建一个值类并添加该类的实例

Swing调用模型对象的方法来渲染它们;您可以通过在值类中重写该方法来利用这一点:

public class GSTValue {
    private final float rate;

    public GSTValue(float rate) {
        this.rate = rate;
    }

    public float getRate() {
        return rate;
    }

    @Override
    public boolean equals(Object obj) {
        return obj instanceof GSTValue &&
            ((GSTValue) obj).rate == this.rate;
    }

    @Override
    public int hashCode() {
        return Objects.hashCode(rate);
    }

    @Override
    public String toString() {
        return String.format("GST %.2f%%", rate);
    }
}
然后,您可以将这些值直接添加到JComboBox:

GSTValue rates = {
    new GSTValue(5),
    new GSTValue(12),
    new GSTValue(18),
    new GSTValue(28),
};
JComboBox<GSTValue> rateComboBox = new JComboBox<>(rates);
GSTValue selection = (GSTValue) rateComboBox.getSelectedItem();
float rate = selection.getRate();