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

问题描述 投票:0回答:1

我有一些方法看起来很糟糕(尤其是参数数量)。我想知道如何才能让这个代码更简洁。

该方法的工作原理是 JLists 并设置一个新的模型(DefaultListModel). 所以它只是在两个 JLists 并删除列表中被交换的项目,而项目被拿走的地方。

欢迎批评和建议。

调用该方法的例子。

moveToOtherJList(newOrdersModel, newOrdersJList, inProcessOrdersModel, inProcessOrdersJList);

这个方法

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);
}
java swing coding-style code-cleanup
1个回答
3
投票

我有一些方法看起来很糟糕(特别是参数的数量)。

好吧,没有必要传递任何一个ListModel,因为你可以从JList中获得ListModel。

所以我将定义该方法为

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);
}
© www.soinside.com 2019 - 2024. All rights reserved.