我已經動態添加了幾個MultiButton
,每個都有一個新的ActionListener
。當ActionListener
被稱爲Component
的類型爲Button
而不是實際的MultiButton
對象(即投向MultiButton導致ClassCastException
不能投Button
到MultiButton
)。爲什麼ActionEvent組件是錯誤的類型?
有沒有辦法讓MultiButton
代替?還是我做了一些愚蠢的事情?
代碼:
Container cBob = findContainerBob(f);
cBob.removeAll();
for (String str : things) {
MultiButton mb = new MultiButton();
mb.setTextLine1(str);
mb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
MultiButton clickedMb = (MultiButton)evt.getComponent(); // Throws exception
});
cBob.addComponent(mb);
}
如果你投給了錯誤的類型,你沒有得到一個'null'值 - 你會得到一個'ClassCastException'。所以你的描述沒有意義,這很難幫助你。 –
哦。是。我的意思是。問題已更新。個人記憶錯誤:這實際上是我在星期五開始寫的一個問題,我錯誤地記住了確切的症狀! - 仍然普遍的問題仍然是相同的 - 爲什麼它是錯誤的類型? – noelicus
什麼_exactly_是'MultiButton'?這不是一個標準組件 –