2012-10-14 1 views
0

У меня есть приложение для управления представлением модели. В представлении содержится JXTaskContainer с несколькими JXTaskPane. JXTaskPane имеет кнопку удаления, которая удалит ее из контейнера.Найти и удалить JXTaskpane из JXTaskPaneContainer

Как я могу найти нужную JXTaskPane, а затем удалить ее из контейнера, предполагая JXTaskpanes, где все добавлено автоматически, нажав кнопку?

`enter code here`class Holder extends JFrame { 

Arraylist <Section> sectionList = new ArrayList<Section>(); 
JPanel holderPanel = new JPanel; 
JXTaskPaneContainer sectionContainer = new JXTaskPaneContainer(); 

this.add(holderPanel); 

// here goes other stuff 



class AddSectionAction implements ActionListener{ 

    //actionPerformed 
    Section section = new Section(); 
    section.addActionListener(new DeleteSectionAction); 
    sectionList.add(section); 
    sectionContainer.add(section); 

    holderPanel.add(sectionContainer); 
    holderPanel.revalidate(); 
    holderPanel.repain(); 

} 


class DeleteSectionAction implements ActionListener{ 

    //actionPerformed 

    sectionContainer.remove(THE SECTION I WANT TO REMOVE); 

} 
} 


public class Section extends JXTaskPane { 

    JTextArea textArea; 
    JButton deleteMe; 

    //other stuff here 

    public JButton getDeleteMe{ 
    return deleteMe; 
    } 
} 
+2

Вы, вероятно, удалить 'JXTaskContainer' таким же образом, вы сделали бы это с помощью JComponent, поэтому сначала попробуйте это. Чтобы лучше помочь, опубликуйте [SSCCE] (http://sscce.org/) о своей лучшей попытке. –

+0

У меня есть список массивов, который сохраняет панели и автоматически добавляет новую панель в JFrame одним нажатием кнопки. Также я добавляю панели в список массива каждый раз, когда нажимается кнопка. Теперь я хочу кнопку удаления, чтобы помочь мне удалить панель. Пожалуйста, как это сделать? – Pukka

+0

* «Пожалуйста, как это сделать?» * Скажите, пожалуйста, когда вы публикуете SSCCE. –

ответ

0

Есть целый ряд способов для достижения этой цели, вероятно, проще всего передать ссылку из Section в DeleteSectionAction слушателя

public class DeleteSectionAction implements ActionListener{ 
    private Section section; 
    public DeleteSectionAction(Section section) { 
     this.section = section; 
    } 

    public void actionPerformed(ActionEvent evt) { 
     // Personally, I'd have a "removeSection" method in 
     // the container that would also remove the 
     // section from the array list... 
     sectionContainer.remove(section); 
    } 

}