添加字段名称作为方法参数

时间:2015-05-07 16:53:06

标签: java swing

我有一个Swing表单,我想检测已编辑的字段数据,以便我可以通过Web服务更新数据。似乎没有一种简单的方法可以做到这一点,因为有很多中等到复杂的代码示例,其中大多数都是我的头脑!但是,我认为我找到了一个符合我需求的简单解决方案,我希望由小组运行它来提供输入/建议。仅供参考:可能无关紧要,但要知道我正在使用NetBeans,因此应用程序会自动编码监听器等内容。

步骤1:当我加载表单时,我将所有数据保存到Class数组中,因此我知道每个字段的起点。以下是该负载的代码:

public void coSetSearchDetail(String coDetail){ 
    String[] text; 
    System.out.println("SingleCO Result: "+ coDetail); 
    text = coDetail.split("\\|"); 
    txtName_CoDetail.setText(text[1]); 
    txtAddr_CoDetail.setText(text[2]);
    txtAddr2_CoDetail.setText(text[3]);
    txtCity_CoDetail.setText(text[4]);
    txtState_CoDetail.setText(text[5]);
    txtZip_CoDetail.setText(text[6]);

    stringarrayCoDetails[0] = text[0];
    stringarrayCoDetails[1] = text[1];
    stringarrayCoDetails[2] = text[2];
    stringarrayCoDetails[3] = text[3];
    stringarrayCoDetails[4] = text[4];
    stringarrayCoDetails[5] = text[5];
    stringarrayCoDetails[6] = text[6];
    java.awt.CardLayout card = (java.awt.CardLayout)pnlMain.getLayout();
    card.show(pnlMain, "pnlCoDetail");
}    

步骤2:我为一个字段创建了一个Lost Focus事件监听器,并且正在测试该字段的当前字段值:

private void txtName_CoDetailFocusLost(java.awt.event.FocusEvent evt)     {                                           

    if (!(txtName_CoDetail.getText().equals(stringarrayCoDetails[1]))){
        createEditBorder();
    }

}                                          

private void createEditBorder (){
    Border border = BorderFactory.createLineBorder(Color.RED, 2);
    txtName_CoDetail.setBorder(border);
}

除了“这是一个好的方法吗?”的一般问题之外,我希望能够将字段名称传递给createEditBorder方法,以便每个数据字段的监听器可以调用它,我有一个“编辑文本”格式的方法。

0 个答案:

没有答案