如何为JList和DefaultListModel制作setter和getters? (Java)

如何为JList和DefaultListModel制作setter和getters? (Java)

问题描述:

我正在编写一个程序,它使用几个自定义的jpanels实质上构成一个Word键盘。这个jpanels应该允许用户从颜色选择器中选择一种颜色并将其从jlist中添加或移除。为了让使用jpanels的窗口能够从jpanels获得数据,我被指示为我的DefaultListModel和jlist制作setter和getters。我不知道如何用这些类型来做到这一点。我看过参数化ArrayLists的setter和getters的例子,看起来很有前途,但我仍然不明白如何将它应用到listModel和jlist如何为JList和DefaultListModel制作setter和getters? (Java)

private ArrayList<String> stringlist = new ArrayList<String>(); 

public ArrayList<String> getStringList() { 
return stringlist; 
} 

public setStringList(ArrayList<String> list) { 
stringlist = list 
} 

选中此项。如果我们有一个JListDefaultListModel

JList listvariable= new JList(); 
    DefaultListModel model= new DefaultListModel<>(); 

现在,这些都为相同的getter和setter方法:

public DefaultListModel getModel() { 
    return model; 
    } 
    public void setModel(DefaultListModel model) { 
    this.model = model; 
    } 



    public JList getListvariable() { 
    return listvariable; 
    } 


    public void setListvariable(JList listvariable) { 
    this.listvariable = listvariable; 
    } 
+0

Ohhhh,好的。因此,假设你在构造函数中声明了模型和JList,并且getter和setter在构造函数之外(但是在同一个类中),那么如何让这些方法可以访问列表和模型?如果类正在扩展JPanel,你认为我真的需要一个构造函数吗? @bhavna garg – Brooklyn

+0

您可以看到getter方法将这些组件作为参数,setter方法返回这些组件。这些方法因此可以自动访问这些组件。并且您不需要基于这些方法的基本目的。 @布鲁克林 –

+0

好的,我明白那一部分。但是,例如,getModel必须返回一个在该方法之外声明的对象(模型)。如果模型已经在构造函数中声明了怎么办? getModel方法将如何访问它? – Brooklyn

为了得到一个JList的选定值,应该遵循以下步骤:

  • 创建扩展的JFrame并实现ActionListener接口的类。
  • 创建一个对象数组。这些将是JList的值。
  • 用上面的数组创建一个新的JList。
  • 创建一个新的JButton。将ActionListener添加到按钮并覆盖actionPerformed方法。现在每次用户按下按钮时,此方法都会启动。
  • 调用getSelectedIndex获取JList中所选项目的索引。
  • 调用getSelectedValue方法获取JList中所选项目的值。
+0

我不得不做出的ActionListener在一个单独的类。这个类只应该有JList和DefaultListModel面板。所以我需要的getters和setters调用整个JList和DefaultListModel(不只是选定的索引)。 – Brooklyn