如何從GridBagElement中刪除元素? http://i.stack.imgur.com/1BsDW.jpg從GridBagLayout中刪除元素
我想通過單擊按鈕刪除所選項目。 如何將所選項目的名稱作爲參數發送到操作按鈕?
如何從GridBagElement中刪除元素? http://i.stack.imgur.com/1BsDW.jpg從GridBagLayout中刪除元素
我想通過單擊按鈕刪除所選項目。 如何將所選項目的名稱作爲參數發送到操作按鈕?
首先,您不要從GridBagLayout中刪除。使用swing可以將組件添加到容器,然後將其從容器中移除。 http://docs.oracle.com/javase/6/docs/api/java/awt/Container.html#remove%28java.awt.Component%29
要選擇綠色面板,您可以爲此面板註冊一個ActionListener或MouseListener。 MouseListener提供MouseEvent。 MouseEvent可以通過getSource爲您提供源代碼,這是綠色面板。 並且該面板可以被移除。
一個簡單的例子片斷:
final JPanel mainPanel = new JPanel();
JPanel greenPanel = new JPanel();
greenPanel.addActionListener(new ActionListener(){
@Override
public void ActionPerformed(ActionEvent e){
int answer = JOptionPane.showConfirmDialog(null, "Delete?");
if(answer == JOptionPane.YES_OPTION){
mainPanel.remove(e.getSource());
}
}
});
mainPanel.add(greenPanel);
您將要建立某種東西像按鈕和其他控制和視圖之間的合同。
想要修改視圖的事物不應該能夠做任何你不想讓它們的事情(比如改變佈局)。
我建議創建一個簡單的界面,它提供了訪問您希望外部控件有權訪問的操作(如添加,編輯,刪除)。這可以傳遞給你的控件,通過限制控件實際上可以做的事情,而不是向他們展示不必要的功能(你不會讓他們之一移除你的主面板;))。
當你想刪除一個選定的任務,你點擊相應的按鈕,它會在你的模型上調用適當的「刪除」方法。
然後,您的實現將找到選定的項目(我假設您保持引用或有一些手段來查找),並將其從它的父容器中刪除。