当前位置: 首页 > 面试题库 >

Jlist Override the List是自动的吗?(bug)?

太叔京
2023-03-14
问题内容

希望我能得到帮助,我会问一个一般性的问题:

我正在使用JList,并且由于JList没有(值,文本)(因此我可以显示文本并在代码中使用值)。由于这种泄漏,我创建
List了对象(myList),该对象与并行工作JList。我每个项目添加到JList我加入myList,所以同样的指标将包含相同的信息
在两个对象(JList和MYLIST)我用的JList.getselectedindex()方法来获得指标,并用它myList来的小狗信息…

问题:就是当我选择价值的下一个值myList被
覆盖与第一价值!这个问题知道吗?

    mod_mp = new ModelMAPPING();   objects cotain values that ot exist in  jList

    msgF.setTo(incom.userID);/////// set parter!
    if(isExCon==-1) {
        // not exist                                           
        mod_mp.to = incom.userID; // incom is object that incom from another program
        mod_mp.SetCovFile(incom.userID+".html");
        mod_mp.ConvName = incom.getBody();

        boolean added= model_list.add(mod_mp);   // add to mylist
        if(added) System.out.println(mod_mp._Hfile + " added");
        model.addElement(mod_mp.ConvName);// add to Jlist by model

        HestoryFile(Htmlhead+tohis,mod_mp._Hfile);//create _Hfile and write to it:"tohis" string.

    } else { //exist@
        // note isExcon return the index if exist else -1
        model_list.get(isExCon).ConvName=incom.getBody();
        mod_mp.SetCovFile(model_list.get(isExCon)._Hfile);
        HestoryFile(tohis, model_list.get(isExCon)._Hfile);
    }//end else

Here if file exists I just update the new text in the JList and set the
current file

The select of JList is:

msgF.setTo (model_list.get(jList2.getSelectedIndex()).to); // set that we will send To...
mod_mp.SetCovFile(model_list.get(jList2.getSelectedIndex())._Hfile);//set the file

jLabel5.setText( bringFromFile(mod_mp._Hfile));//tell the label to read that file

It works fine, but when I have two items in JList if I select any, the other
is overridden!!!


问题答案:

我正在使用JList,并且由于JList没有(值,文本)(所以我
可以显示文本并在代码中使用值)

很难理解您的问题,但是我“怀疑”
这句话,因为您对JList模型和
其JList本身显示的文本有误解。我认为这就是为什么您需要单独的
List。

该模型可以包含所需的任何对象,并且JList还可以
根据需要显示文本,而不管对象本身如何。最后一项任务由
ListCellRenderer.
Take a look to Writing a Custom Cell
Renderer

For instance you can have this class:

class Person {    
    String lastName;
    String name;

    public Person(String lastName, String name){
        this.lastName = lastName;
        this.name = name;
    }

    public String getLastName(){
        return this.lastName;
    }

    public String getName(){
        return this.name;
    }
}

现在,您希望JList保持Person对象稍后可以使用它们。这一部分很简单,只需创建一个ListModel并在其中添加元素即可:

DefaultListModel model = new DefaultListModel();
model.addElement(new Person("Lennon","John"));
model.addElement(new Person("Harrison","George"));
model.addElement(new Person("McCartney","Paul"));
model.addElement(new Person("Starr","Ringo"));

But you want to display the name and last name of each Person. Well you can
implement your own ListCellRenderer to do this:

JList list = new JList(model);
list.setCellRenderer(new DefaultListCellRenderer(){
    @Override
    public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
        super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
        if(value instanceof Person){
            Person person = (Person)value;
            setText(person.getName() + " " + person.getLastName());
        }
        return this;
    }
});


 类似资料:
  • 我正在尝试设置一些视图的动画,以便它们被风景中的巨大键盘挡住。如果我只是为帧设置动画,效果会很好,但其他人认为这会适得其反,我应该更新NSLayoutConstraints。然而,它们似乎不具有动画效果。有人让他们成功地工作了吗? 结果是瞬间跳到有问题的高度。

  • 问题内容: 给定示例代码( Message 是一个Eloquent模型。): Eloquent是否使用参数化查询(如PDO)或任何其他机制来防止SQL注入? 问题答案: 对,但是… 是的,当您依赖内置的ORM功能时,它可以防止SQL注入。从文档: Laravel的数据库查询构建器为创建和运行数据库查询提供了方便,流畅的界面。它可用于在您的应用程序中执行大多数数据库操作,并可在所有受支持的数据库系统

  • 问题内容: 我的目标是在有效后自动保存表单并使用超时对其进行更新。我设置为: 我想知道是否有最佳方法。 问题答案: 查看代码,我可以看到,如果当前输入有效,并且用户也更改了任何有效的值,则不会重新触发$ watch。这是因为监视功能仅在值更改时才执行。您还应该检查表单的脏状态,并在持久保存表单数据时将其重置,否则会出现无休止的持久循环。 而且您不清除以前的任何超时。 如果当前超时正在进行,则当前代

  • 我在学习Android,我也在学习Kotlin。 在编写Android代码时,我对在<code>let</code>函数中使用<code>it</code>感到好奇。 MainActivity.kt 错误 在的lambda表达式中,是,类型是 的类型,是< code>Fragment?它不是< code >片段类型。 老实说,我不太明白。 我不知道为什么它是自动的,应该只用于。

  • 我在 Nexus OSS 代码中看到这一行...... 以上可在 https://github.com/sonatype/nexus-oss/blob/master/components/nexus-core/src/main/java/org/sonatype/nexus/maven/tasks/ReleaseRemoverTask.java 但是ReleaseRemover.java是一个接口

  • 我在Google云存储上创建了一个bucket:。我为桶设置选择了“美国”多区域。 我的假设是,存储在这个bucket中的任何对象都将被复制到所有区域,以达到高耐久性的目的,但不会被推出到所有Google Cloud CDN全局边缘位置,以达到CDN的目的。 还是我的“美国”多区域桶中的所有对象都已经自动推出到所有谷歌云CDN边缘位置? 我大吃一惊,我不知道我的桶是否已经是一个CDN或不是。即使搜