在談到這一點:How do I display something I enter in a JOptionPane on the JFrame?如何從面板中刪除多個標籤?
我做了一個JList,這也輸出我輸入的是什麼,並顯示在JPanel的作爲的JLabel,因爲我所使用的鏈接來完成。但是,我該如何刪除相應的JLabel?非常感謝任何願意幫助的人!
編輯: 我想要做的是當我點擊我的JList中的刪除按鈕,面板上的標籤也將被刪除。
在談到這一點:How do I display something I enter in a JOptionPane on the JFrame?如何從面板中刪除多個標籤?
我做了一個JList,這也輸出我輸入的是什麼,並顯示在JPanel的作爲的JLabel,因爲我所使用的鏈接來完成。但是,我該如何刪除相應的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();
}
});
因此,當你在列表中改變一些東西的標籤會被更新自動。
哇。我會去試試這個。非常感謝! – alicedimarco
我懂了!你太棒了!起初,我得到了一個nullpointerexception,但我編輯了我的代碼,瞧:D非常感謝!救命稻草! – alicedimarco
執行以下操作:
String stringToRemove = "CATS";
jLabel.setText(jLabel.getText().replace(stringToRemove, "");
如果說JLabel
設置爲:"CATS DOGCATS APPLE"
將取出CATS
串後改爲" DOG APPLE"
如果我想根據JList中突出顯示的內容刪除另一個詞,該怎麼辦? D:這可能嗎? – alicedimarco
1)放在那裏JPopupMenu而不是JOptionPane
2)加List Selection Listener至JList,套選型號
3)檢查是否SelectedIndex
> -1,如果從JList
或ListModel
4)通過更好然後removeItem(s)
將被添加JList Items
到DefaultListModel
我認爲你正在尋找一個ListModel的。當您實施它時,您可以輕鬆添加/刪除項目。
例如:
// adding
listModel = new DefaultListModel();
listModel.addElement("Jane Doe");
list = new JList(listModel);
// removing (the selected item)
int index = list.getSelectedIndex();
listModel.remove(index);
如需進一步信息請參閱Tutorial。
我不確定爲每個條目添加標籤是一個好主意。也許你應該只添加一個標籤並將文本設置爲列表條目的連接。 – Thomas
如果我將所有內容連接成一個標籤,是不是會一次刪除所有內容? D:如果我想選擇要刪除的內容怎麼辦? – alicedimarco
不,你只是從列表中刪除並更新標籤的文本。你不會刪除標籤本身。 – Thomas