不幸的是,由于我的工作地点,我无法为此网站提供代码。有了这个说我会尽可能详细。我正在使用一个XML文件来填充基于“Name”元素的JcomboBox。我有那个部分在工作。我这样做的方法是使用DOM方法,我在Object中为每个节点创建,然后我使用set方法来获取我需要的属性。
我现在在哪里,我需要根据所选内容填充文本字段。我正在努力弄清楚如何将所选内容与我需要的内容相关联。例如,假设我有一个名为“Reference_Point_ID”的节点,我需要拉出名为“Latitude”的子节点来填充JTextField。如何将子节点与父节点关联以提取正确的数据?
我再次对不起我提供代码,但任何帮助将不胜感激。谢谢。
答案 0 :(得分:0)
更新 - 解决方案 对于其他可能需要此信息的人。
为了将我需要的数据提取到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());
}
}