0

これは、ポップアップメニューボタンの私のactionListenerです。クリックするたびに、この画像をパネルに追加したい

        mntmNewMenuItem.addActionListener(new ActionListener() {
        //This method will be called whenever you click the button.
          int i;
          public void actionPerformed(ActionEvent e) {
            try {
                label.setIcon(new ImageIcon
                 (new URL("file:/C:/Users/Ashad/JunoWorkspace/FYP1/table.png")));
            } catch (MalformedURLException e1) {
                e1.printStackTrace();
            }   
                panel.add(label); 
            //redraw panel after addition
                panel.validate();    
                panel.repaint();
                handleDrag(label);
              }
        });
4

1 に答える 1

0

UI オブジェクトは一度しか追加できません。

1 つのインスタンスだけを追加する場合は、最初にその要素を削除してから追加する必要があります。(ただし、削除してから追加するのは論理的ではないようです)。

Label()代わりに、アクション実行内にオブジェクトを作成できます

public void actionPerformed(ActionEvent e) {
            label = new Label();//Added
            try {
                label.setIcon(new ImageIcon
                 (new URL("file:/C:/Users/Ashad/JunoWorkspace/FYP1/table.png")));
            } catch (MalformedURLException e1) {
                e1.printStackTrace();
            } 
于 2013-04-09T09:05:04.117 に答える