0
나는 JFileChooser로 "보내기"옵션이 필요한 내 대학원을 향한 작은 프로젝트를 진행하고 있습니다. Right Click 이벤트에이 옵션이 나타나기를 원합니다. 그것에 대해 어떻게 가야할까요?JFileChooser로 "보내기"옵션을 추가하는 방법
참고 : 나는 윈도우 7
나는 JFileChooser로 "보내기"옵션이 필요한 내 대학원을 향한 작은 프로젝트를 진행하고 있습니다. Right Click 이벤트에이 옵션이 나타나기를 원합니다. 그것에 대해 어떻게 가야할까요?JFileChooser로 "보내기"옵션을 추가하는 방법
참고 : 나는 윈도우 7
당신은 JPopupMenu의 예를 들어
을 사용할 수를 사용하고
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);
}
}