📄 traypopupmenu.java
字号:
/*
* Copyright (c) 2002-2008 TeamDev Ltd. All rights reserved.
*
* Use is subject to license terms.
*
* The complete licence text can be found at
* http://www.teamdev.com/winpack/license.jsf
*/
package teamdev.jxcapture.samples.demo;
import javax.swing.*;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
/**
* @author Ikryanov Vladimir
*/
public class TrayPopupMenu extends JPopupMenu {
private static final String PROPERTY_NAME = "captureOperationEnabled";
private static CaptureOperations operations = CaptureOperations.getInstance();
private Actions.ObjectCaptureAction objectCaptureAction = new Actions.ObjectCaptureAction(TrayPopupMenu.class);
private Actions.RegionCaptureAction regionCaptureAction = new Actions.RegionCaptureAction(TrayPopupMenu.class);
private Actions.DesktopCaptureAction desktopCaptureAction = new Actions.DesktopCaptureAction(TrayPopupMenu.class);
private Actions.ActiveWindowCaptureAction windowCaptureAction = new Actions.ActiveWindowCaptureAction(TrayPopupMenu.class);
private boolean captureOperationEnabled = true;
public TrayPopupMenu(JxCaptureDemo application) {
configCaptureOperations();
createGUI(application);
addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
if (evt.getPropertyName().equals(PROPERTY_NAME)) {
boolean enabled = ((Boolean) evt.getNewValue()).booleanValue();
windowCaptureAction.setEnabled(enabled);
objectCaptureAction.setEnabled(enabled);
regionCaptureAction.setEnabled(enabled);
desktopCaptureAction.setEnabled(enabled);
}
}
});
}
private void createGUI(JxCaptureDemo application) {
JMenuItem activeWindowItem = new JMenuItem(windowCaptureAction);
JMenuItem objectItem = new JMenuItem(objectCaptureAction);
JMenuItem regionItem = new JMenuItem(regionCaptureAction);
JMenuItem desktopItem = new JMenuItem(desktopCaptureAction);
JMenuItem openImageItem = new JMenuItem(new Actions.OpenImageAction(TrayPopupMenu.class));
JMenuItem settingsItem = new JMenuItem(new Actions.SettingsAction(TrayPopupMenu.class));
JMenuItem aboutItem = new JMenuItem(new Actions.AboutAction(TrayPopupMenu.class));
JMenuItem exitItem = new JMenuItem(new Actions.ExitAction(TrayPopupMenu.class, application));
JRadioButtonMenuItem toViewerItem = new JRadioButtonMenuItem(new Actions.CaptureToViewerAction(TrayPopupMenu.class));
JMenuItem toFileItem = new JRadioButtonMenuItem(new Actions.CaptureToFileAction(TrayPopupMenu.class));
JMenuItem toClipboardItem = new JRadioButtonMenuItem(new Actions.CaptureToClipboardAction(TrayPopupMenu.class));
ApplicationSettings settings = ApplicationSettings.getInstance();
toViewerItem.setSelected(settings.isCaptureToViewer());
toFileItem.setSelected(settings.isCaptureToFile());
toClipboardItem.setSelected(settings.isCaptureToClipboard());
JMenu captureToItem = new JMenu("Capture To");
captureToItem.setIcon(new ImageIcon(ImageViewer.class.getResource("resources/images/empty.png")));
captureToItem.add(toViewerItem);
captureToItem.add(toClipboardItem);
captureToItem.add(toFileItem);
ButtonGroup group = new ButtonGroup();
group.add(toViewerItem);
group.add(toFileItem);
group.add(toClipboardItem);
add(desktopItem);
add(activeWindowItem);
add(regionItem);
add(objectItem);
add(openImageItem);
addSeparator();
add(captureToItem);
addSeparator();
add(settingsItem);
add(aboutItem);
addSeparator();
add(exitItem);
}
private void configCaptureOperations() {
operations.addCaptureOperationsListener(new CaptureOperations.CaptureOperationsListener() {
public void operationBegin() {
setCaptureOperationEnabled(false);
}
public void operationComplete(boolean isCanceled) {
setCaptureOperationEnabled(true);
}
});
}
public void setCaptureOperationEnabled(boolean captureOperationEnabled) {
boolean oldValue = this.captureOperationEnabled;
this.captureOperationEnabled = captureOperationEnabled;
firePropertyChange(PROPERTY_NAME, oldValue, this.captureOperationEnabled);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -