2016-08-01 1 views
0

Je travaille sur un petit projet vers mon diplôme, où j'ai besoin d'avoir "envoyer à" option avec JFileChooser. Je souhaite que cette option apparaisse sur l'événement Clic droit. Veuillez suggérer comment s'y prendre?Comment ajouter "envoyer à" Option avec JFileChooser

Note: J'utilise Windows 7.

Répondre

0

Vous pouvez utiliser JPopupMenu

Par exemple,

import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.awt.event.MouseAdapter; 
import java.awt.event.MouseEvent; 

import javax.swing.JFileChooser; 
import javax.swing.JFrame; 
import javax.swing.JMenuItem; 
import javax.swing.JPanel; 
import javax.swing.JPopupMenu; 
import javax.swing.border.BevelBorder; 
import javax.swing.event.PopupMenuEvent; 
import javax.swing.event.PopupMenuListener; 

public class PopupMenuExample extends JPanel { 

    public JPopupMenu popup; 

    public PopupMenuExample() { 
    popup = new JPopupMenu(); 
    ActionListener menuListener = new ActionListener() { 
     public void actionPerformed(ActionEvent event) { 
     System.out.println("Popup menu item [" 
      + event.getActionCommand() + "] was pressed."); 
     if(event.getActionCommand().equals("Send To")) { 
      JFileChooser fileChooser = new JFileChooser(); 
      int result = fileChooser.showSaveDialog(null); 
      // your logic here 
     } 
     } 
    }; 
    JMenuItem item; 
    popup.add(item = new JMenuItem("Send To")); 
    item.setHorizontalTextPosition(JMenuItem.RIGHT); 
    item.addActionListener(menuListener); 
    popup.add(item = new JMenuItem("Left")); 
    item.setHorizontalTextPosition(JMenuItem.RIGHT); 
    item.addActionListener(menuListener); 
    popup.add(item = new JMenuItem("Center")); 
    item.setHorizontalTextPosition(JMenuItem.RIGHT); 
    item.addActionListener(menuListener); 
    popup.add(item = new JMenuItem("Right")); 
    item.setHorizontalTextPosition(JMenuItem.RIGHT); 
    item.addActionListener(menuListener); 
    popup.add(item = new JMenuItem("Full")); 
    item.setHorizontalTextPosition(JMenuItem.RIGHT); 
    item.addActionListener(menuListener); 
    popup.addSeparator(); 
    popup.add(item = new JMenuItem("Settings . . .")); 
    item.addActionListener(menuListener); 

    popup.setLabel("Justification"); 
    popup.setBorder(new BevelBorder(BevelBorder.RAISED)); 
    popup.addPopupMenuListener(new PopupPrintListener()); 

    addMouseListener(new MousePopupListener()); 
    } 

    // An inner class to check whether mouse events are the popup trigger 
    class MousePopupListener extends MouseAdapter { 
    public void mousePressed(MouseEvent e) { 
     checkPopup(e); 
    } 

    public void mouseClicked(MouseEvent e) { 
     checkPopup(e); 
    } 

    public void mouseReleased(MouseEvent e) { 
     checkPopup(e); 
    } 

    private void checkPopup(MouseEvent e) { 
     if (e.isPopupTrigger()) { 
     popup.show(PopupMenuExample.this, e.getX(), e.getY()); 
     } 
    } 
    } 

    // An inner class to show when popup events occur 
    class PopupPrintListener implements PopupMenuListener { 
    public void popupMenuWillBecomeVisible(PopupMenuEvent e) { 
     System.out.println("Popup menu will be visible!"); 
    } 

    public void popupMenuWillBecomeInvisible(PopupMenuEvent e) { 
     System.out.println("Popup menu will be invisible!"); 
    } 

    public void popupMenuCanceled(PopupMenuEvent e) { 
     System.out.println("Popup menu is hidden!"); 
    } 
    } 

    public static void main(String s[]) { 
    JFrame frame = new JFrame("Popup Menu Example"); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setContentPane(new PopupMenuExample()); 
    frame.setSize(300, 300); 
    frame.setVisible(true); 
    } 
}