简体   繁体   English

我怎样才能简化这个模块?

[英]How can I simplify this module?

I have some method which looks awful(especially number of parameters).我有一些看起来很糟糕的方法(尤其是参数数量)。 I wonder how can I make this code cleaner.我想知道如何使这段代码更干净。

The method works with JLists and setting a new model( DefaultListModel ).该方法适用于JLists并设置新模型( DefaultListModel )。 So it just swaps items between two JLists and deletes swapped item in list where was the item taken.所以它只是在两个JLists之间交换项目并删除列表中的交换项目,该项目是在哪里获取的。

Сriticism and advice are welcome.欢迎批评和建议。

Call the method example:调用方法示例:

moveToOtherJList(newOrdersModel, newOrdersJList, inProcessOrdersModel, inProcessOrdersJList);

The method:方法:

private void moveToOtherJList(DefaultListModel firstModel, JList firstJList, DefaultListModel secondModel,  JList secondJList)
{
    int selectedIndex = firstJList.getSelectedIndex();
    secondModel.addElement(firstJList.getSelectedValue());
    secondJList.setModel(secondModel);
    firstModel.remove(selectedIndex);
}

I have some method which looks awful(especially number of parameters).我有一些看起来很糟糕的方法(尤其是参数数量)。

Well there is no need to pass either ListModel, since you can get the ListModel from the JList.好吧,没有必要传递任何一个 ListModel,因为您可以从 JList 中获取 ListModel。

So I would define the method as:所以我将方法定义为:

public void moveToOtherJList(JList fromJList, JList toJList)
{
    int selectedIndex = fromJList.getSelectedIndex();
    DefaultListModel fromModel = (DefaultListModel)fromJList.getModel();
    DefaultListModel toModel = (DefaultListModel)toJList.getModel();

    toModel.addElement(fromJList.getSelectedValue());
    fromModel.remove(selectedIndex);
}

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

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