【问题标题】:Java : how to get the expression through the jcombo listJava:如何通过 jcombo 列表获取表达式
【发布时间】:2017-11-09 06:46:48
【问题描述】:

如何使用 Java swing 创建单行表达式,链接图像 picture。每分钟,每天,每月,每个工作日和每小时都需要将其转换为“*”,并且所有组合框都包含数字列表list number link,工作日包含 click the picture

我想要的是,如果用户选择“每分钟”、“每天”、“月 = 2”、“工作日 = 星期一”、“小时 = 3”

工作日 JCombo 注释:星期日 = 0 ,星期一 = 1,星期二 = 2 .....

输出将打印为:* * 2 1 3

非常感谢。

我已经尝试过这个,我的开始代码但不能做太多:

String sjcb_EM = jcb_EM.getSelectedItem().toString();
    String sjcb_EH = jcb_EH.getSelectedItem().toString();
    String sjcb_ED = jcb_ED.getSelectedItem().toString();
    String sjcb_EEM = jcb_EEM.getSelectedItem().toString();
    String sjcb_EW = jcb_EW.getSelectedItem().toString();

    String vb_1 = sjcb_EM + " " + sjcb_EH + " " + sjcb_ED + " " + sjcb_EEM + " " + sjcb_EW;

System.out.println(vb_1);

现在我卡住了,如何做出我想要的表达。

【问题讨论】:

  • 不使用String,而是创建一个提供“显示值”和“查询值”的对象,然后在需要时将其用作JComboBox中的对象,“获取查询值”
  • 对不起,伙计,有点困惑..你能给我一个链接或示例,以便我可以关注。谢谢
  • 您正在使用面向对象的编程语言,当您需要组合两个或值时,就有机会让新对象来完成这项工作。在这种情况下,JComboBox 可以通过使用 ListCellRenderer 或通过覆盖 toString 方法来显示任何对象

标签: java swing


【解决方案1】:

首先构建一个可以同时保存显示值和查询值的类...

public class WorkoutUnit {
    private String displayValue;
    private String queryValue;

    public WorkoutUnit(String displayValue, String queryValue) {
        this.displayValue = displayValue;
        this.queryValue = queryValue;
    }

    public String getDisplayValue() {
        return displayValue;
    }

    public String getQueryValue() {
        return queryValue;
    }

    @Override
    public String toString() {
        return displayValue;
    }
}

使用这些值构建ComboBoxModel...

DefaultComboBoxModel<WorkoutUnit> model = new DefaultComboBoxModel<>();
model.addElement(new WorkoutUnit("Every Minute", "*"));
for (int index = 10; index < 61; index += 10) {
    model.addElement(new WorkoutUnit(Integer.toString(index), Integer.toString(index)));
}
JComboBox<WorkoutUnit> cb = new JComboBox(model);

需要时,从组合框中获取选中的项目,并获取其查询值...

WorkoutUnit unit = (WorkoutUnit)cb.getSelectedItem();
System.out.println("Query = " + unit.getQueryValue());

在本例中,我使用toStringJComboBox 提供显示值,这不是我的首选解决方案,我更喜欢使用ListCellRenderer,如here 所示

哦,因为看起来您正在沿着数据库查询路线前进,所以您还应该看看Using Prepared Statements

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    相关资源
    最近更新 更多