繁体   English   中英

使用jComboBox列表将jTable数据转换为jTextField

[英]using jTable data to jTextField using jComboBox list

我有一个jComboBox ,据说其中包含来自jTable数据。 我的组合框列表是

  • 射手
  • 骑士
  • 流氓
  • 魔术师

我想要的是,如果从组合框中选择了Knight,我希望将jTable中Knight的数据导入到特定的jTextField

我有一个jTextField1作为STR,一个jTextField2作为AGI,依此类推。

如何编写这些说明?

jTable1.setModel(new javax.swing.table.DefaultTableModel(
        new Object [][] {
            {"Archer",  new Double(5.0),  new Double(12.0),  new Double(6.0),  new Double(3.0),  new Double(4.0)},
            {"Knight",  new Double(14.0),  new Double(4.0),  new Double(10.0),  new Double(1.0),  new Double(1.0)},
            {"Rogue",  new Double(6.0),  new Double(18.0),  new Double(3.0),  new Double(4.0),  new Double(5.0)},
            {"Mage",  new Double(3.0),  new Double(4.0),  new Double(4.0),  new Double(18.0),  new Double(17.0)}
        },
        new String [] {
            "Specializations", "STR", "AGI", "CON", "INT", "WIS"
        }

我认为您可以制作一个Heroe类,以创建您的英雄(将值包装在类中并覆盖toString()方法。)

class ComboItem
{
private String key;
private String value;

public ComboItem(String key, String value)
{
    this.key = key;
    this.value = value;
}

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

public String getKey()
{
    return key;
}

public String getValue()
{
    return value;
}

将ComboItem添加到您的comboBox。

comboBox.addItem(new ComboItem("Visible String 1", "Value 1"));
comboBox.addItem(new ComboItem("Visible String 2", "Value 2"));
comboBox.addItem(new ComboItem("Visible String 3", "Value 3"));

每当您获得所选项目时。

Object item = comboBox.getSelectedItem();
String value = ((ComboItem)item).getValue();

如果组合框中的数据与jTable中的顺序相同:

int selectedIndex = jComboBox1.getSelectedIndex();
    Object valueAt0 = jTable1.getModel().getValueAt(selectedIndex, 0);
    Object valueAt1 = jTable1.getModel().getValueAt(selectedIndex, 1);
    jTextField1.setText("" + valueAt0 + " " + valueAt1);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM