有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (4) 个答案

  1. # 2 楼答案

    我将添加一个答案来提供一些代码,因为我感觉我的评论被误解了

    首先,如果没有必要,不要对每个列表项使用标签,而是使用一个标签,其内容是列表项的串联。然后每当列表更改时更新标签的文本

    基本上,您有这样一种方法:

    private void updateLabel() {
       StringBuilder text = new StringBuilder();
       //this assumes listModel is a DefaultListModel and doesn't contain null values
       //adapt for other list models and add any necessary checks
       for( Object entry : listModel.toArray() ) {
         text.append( entry.toString()).append(" ");
       }
       label.setText( text.toString() );
    }
    

    然后将侦听器添加到列表模型:

    listModel.addListDataListener( new ListDataListener() {      
      public void intervalAdded(ListDataEvent e) {
         updateLabel();
      }
    
      public void intervalRemoved(ListDataEvent e) {
         updateLabel();
      }
    
      public void contentsChanged(ListDataEvent e) {
         updateLabel();
      }
    });
    

    因此,当您更改列表中的某些内容时,标签将自动更新

  2. # 3 楼答案

    请执行以下操作:

    String stringToRemove = "CATS";
    jLabel.setText(jLabel.getText().replace(stringToRemove, "");
    

    如果将JLabel设置为:"CATS DOGCATS APPLE",则在删除CATS字符串后,它将更改为" DOG APPLE"

  3. # 4 楼答案

    我想你在找一个模特。当您实现它时,您可以轻松地添加/删除项

    例如:

    // adding
    listModel = new DefaultListModel();
    listModel.addElement("Jane Doe");
    
    list = new JList(listModel);
    
    // removing (the selected item)
    int index = list.getSelectedIndex();
    listModel.remove(index);
    

    有关更多信息,请参阅Tutorial