0

モデルビューコントローラーアプリケーションがあります。ビューには、いくつかのJXTaskPaneを持つJXTaskContainerが含まれています。JXTaskPaneには、コンテナから削除する削除ボタンがあります。

正しい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;
   }
 }
4

1 に答える 1

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); 
    }

 }
于 2012-10-14T19:47:45.597 に答える