MVC を使用して単純な JList を実装しようとしています。基本的に、JList を表示し、その下にアイテムを削除するボタンを追加します。モデルに AbstractListModel を使用したいのは、後でデータとして単純な ArrayList 以上のものを必要とするためです。
JList を適切な MVC の方法で使用するのに問題があります。たとえば、ビューでリストを作成します。しかし、このリストにはモデル (addModel(method)) が必要であり、ビューに追加されます。MVC ではビューにモデルの知識がないと思っていたので、奇妙に思えます。また、コントローラーに何を入れるべきか本当にわかりません。 .
とにかく、誰かがこれを実装するためのガイドラインを教えてくれたらいいのにと思います。
これが私が始めたコードです:
public class SimpleJlist extends JFrame
{
public static void main(String[] args)
{
Controller controller = new Controller();
View view = new View(controller);
Model model = new Model();
SimpleJlist jl = new SimpleJlist();
jl.setLayout(new FlowLayout());
jl.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jl.add(view);
jl.setVisible(true);
jl.pack();
}
}
public class View extends JPanel implements ListDataListener, ActionListener
{
Controller controller;
JButton button;
JList list;
public View(Controller controller)
{
this.controller = controller;
button = new JButton("Delete");
/* Creation of the Jlist, but need the model. */
}
/* For the button */
public void actionPerformed(ActionEvent event) { }
/* For the list */
public void contentsChanged(ListDataEvent event) { }
public void intervalAdded(ListDataEvent event) { }
public void intervalRemoved(ListDataEvent event) { }
}
public class Model extends AbstractListModel
{
private ArrayList<String> names;
public Model()
{
names = new ArrayList<String>();
/* add names... */
}
public void deleteElement(int index) { names.remove(index); }
public String getElementAt(int index) { return names.get(index); }
public int getSize() { return names.size(); }
}
コードは明らかに完全ではありませんが、これは、次に何をすべきかを考える前に私がたどり着いた場所についてです...
何を入れればいいのかわからないので、コントローラーはありません。