java - 如何从面板上删除多个标签?

标签 java swing user-interface jlist jlabel

引用此:How do I display something I enter in a JOptionPane on the JFrame?

我制作了一个 JList,它也输出我输入的内容,并且它在 JPanel 上显示为 JLabels,就像我使用链接所做的那样。但是,这次如何删除相应的 JLabel 呢?非常感谢任何愿意提供帮助的人!

编辑: 我想要做的是,当我单击 JList 中的删除按钮时,面板上的标签也将被删除。

最佳答案

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

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

基本上,你有这样的方法:

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();
  }
});

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

关于java - 如何从面板上删除多个标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8324598/

相关文章:

java - 使用循环执行actionPerformed(在单击按钮上)

java - 智能 : Automatic creation of ear artifact from gradle project

java - 在java swing中单击按钮后无法立即将按钮文本更改为图标

java - 为什么我的代码会抛出 NullPointerException?

c++ - 信号未在此范围内声明/未定义对 class::method 的引用

javascript - 按钮填充可用空间,将它们分组到下拉菜单中

java - 如何在java spring boot中记录JSON对象?

java - 如何访问 spark javadoc 或来自 java 项目的源代码?

java - SQLite 数据库中没有存储任何信息

java - 如何向方法添加gui元素并调用它们?