[英]How to add Swing components in an ActionListener?
我在一個擴展JFrame的類中有一個名為newMI的JMenuItem。 我想在單擊JMenuItem時將Swing組件添加到我的JFrame中。 出於測試目的,我嘗試添加JPanel並將JPanel的背景顏色設置為紅色。
這是我的ActionListener:
newMI.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JPanel p = new JPanel();
p.setBackground(Color.red);
add(p);
}
}
但這不起作用。 如果我在其他Swing組件的初始化期間將它添加到JFrame,我可以更改JPanel的背景顏色。 但我無法直接在ActionListener內部將Swing組件添加到JFrame。 有人可以幫忙嗎?
非常感謝。
您需要重新布局組件 - 您的新面板已添加,但大小為0x0像素。 添加面板后,在組件上調用layout(true)
。
如果組件中沒有布局管理器,則必須在將添加的面板添加到組件后手動設置其位置和大小。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.