[英]Populate JTextField with data from XML using JComboBox ItemStateChanged listener
不幸的是,由于工作原因,我无法向该网站提供代码。 话虽如此,我将尽可能详细。 我正在使用XML文件填充基于“名称”元素的JcomboBox。 我有那部分工作。 我这样做的方法是使用DOM方法,然后在Object中为每个节点创建对象,然后使用set方法来获取所需的属性。
我现在所在的位置是我需要根据所选内容填充文本字段。 我正在努力弄清楚如何将所选内容与我需要的内容联系起来。 例如,假设我有一个名为“ Reference_Point_ID”的节点,我需要拉出一个名为“ Latitude”的子节点来填充JTextField。 如何将子节点与父节点关联以提取正确的数据?
再次抱歉,我无法提供代码,但是任何帮助将不胜感激。 谢谢。
更新-解决方案对于可能需要此信息的其他任何人。
为了将所需的数据提取到JComboBox中,我必须像这样修改模型:
public TestReferencePointXMLReaderGUI()
{
initComponents();
ReferencePointReader referencePointReader = new ReferencePointReader("path to your xml file");
List<ReferencePointObject> listOfData = referencePointReader.getData();
DefaultComboBoxModel<ReferencePointObject> model =
(DefaultComboBoxModel<ReferencePointObject>) jComboBoxRefPointSelector.getModel();
for (ReferencePointObject referencePointObject : listOfData)
{
model.addElement(referencePointObject);
}
}
下面显示了如何根据所选内容更改文本字段中的数据。 我有话要说。 除非您希望ItemStateChanged返回先前的选择以及新的选择,否则需要确保添加if check语句。
private void jComboBoxRefPointSelectorItemStateChanged(java.awt.event.ItemEvent evt)
{
if (evt.getStateChange() == ItemEvent.SELECTED)
{
Object selected = jComboBoxRefPointSelector.getSelectedItem();
ReferencePointObject selectedReferencePoint = (ReferencePointObject) selected;
jTextFieldLat.setText(selectedReferencePoint.getLat());
jTextFieldLong.setText(selectedReferencePoint.getLng());
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.