📄 applicationwindow.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.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import java.util.ResourceBundle;
/**
* @author Ikryanov Vladimir
*/
public class ApplicationWindow extends JFrame {
private ResourceBundle resource = ApplicationSettings.getResourceBundle();
private Actions.ObjectCaptureAction objectCaptureAction = new Actions.ObjectCaptureAction(TrayPopupMenu.class, Actions.ActionType.MENU);
private Actions.RegionCaptureAction regionCaptureAction = new Actions.RegionCaptureAction(TrayPopupMenu.class, Actions.ActionType.MENU);
private Actions.DesktopCaptureAction desktopCaptureAction = new Actions.DesktopCaptureAction(TrayPopupMenu.class, Actions.ActionType.MENU);
private Actions.ActiveWindowCaptureAction windowCaptureAction = new Actions.ActiveWindowCaptureAction(TrayPopupMenu.class, Actions.ActionType.MENU);
private Actions.SettingsAction settingsAction = new Actions.SettingsAction(TrayPopupMenu.class);
private Actions.OpenImageAction openImageAction = new Actions.OpenImageAction(TrayPopupMenu.class);
private Actions.ExitAction exitAction;
public ApplicationWindow(JxCaptureDemo application) {
setTitle(resource.getString("TrayIcon.ToolTip.Text"));
createGUI(application);
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
if (exitAction != null) {
exitAction.actionPerformed(null);
}
}
});
}
private void createGUI(JxCaptureDemo application) {
createMenuBar(application);
createToolBar();
pack();
setLocationRelativeTo(null);
setResizable(false);
}
private void createMenuBar(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(openImageAction);
JMenuItem settingsItem = new JMenuItem(settingsAction);
JMenuItem aboutItem = new JMenuItem(new Actions.AboutAction(TrayPopupMenu.class));
exitAction = new Actions.ExitAction(TrayPopupMenu.class, application);
JMenuItem exitItem = new JMenuItem(exitAction);
JMenuItem toViewerItem = new JRadioButtonMenuItem(new Actions.CaptureToViewerAction(TrayPopupMenu.class));
JMenuItem toClipboardItem = new JRadioButtonMenuItem(new Actions.CaptureToClipboardAction(TrayPopupMenu.class));
JMenuItem toFileItem = new JRadioButtonMenuItem(new Actions.CaptureToFileAction(TrayPopupMenu.class));
ApplicationSettings settings = ApplicationSettings.getInstance();
toViewerItem.setSelected(settings.isCaptureToViewer());
toFileItem.setSelected(settings.isCaptureToFile());
toClipboardItem.setSelected(settings.isCaptureToClipboard());
ButtonGroup group = new ButtonGroup();
group.add(toViewerItem);
group.add(toFileItem);
group.add(toClipboardItem);
JMenu fileMenu = new JMenu("File");
fileMenu.add(openImageItem);
fileMenu.addSeparator();
fileMenu.add(exitItem);
JMenu captureMenu = new JMenu("Capture");
captureMenu.add(desktopItem);
captureMenu.add(activeWindowItem);
captureMenu.add(objectItem);
captureMenu.add(regionItem);
captureMenu.addSeparator();
captureMenu.add(toViewerItem);
captureMenu.add(toClipboardItem);
captureMenu.add(toFileItem);
JMenu settingsMenu = new JMenu("Settings");
settingsMenu.add(settingsItem);
JMenu helpMenu = new JMenu("Help");
helpMenu.add(aboutItem);
JMenuBar menuBar = new JMenuBar();
menuBar.add(fileMenu);
menuBar.add(captureMenu);
menuBar.add(settingsMenu);
menuBar.add(helpMenu);
setJMenuBar(menuBar);
}
private void createToolBar() {
JButton objectButton = new ToolButton(objectCaptureAction);
JButton regionButton = new ToolButton(regionCaptureAction);
JButton desktopButton = new ToolButton(desktopCaptureAction);
JButton windowButton = new ToolButton(windowCaptureAction);
JButton openImageButton = new ToolButton(openImageAction);
JButton settingsButton = new ToolButton(settingsAction);
JToolBar toolBar = new JToolBar(JToolBar.HORIZONTAL);
toolBar.setBorderPainted(false);
toolBar.setFloatable(false);
toolBar.add(desktopButton);
toolBar.add(windowButton);
toolBar.add(regionButton);
toolBar.add(objectButton);
toolBar.addSeparator(new Dimension(10, 0));
toolBar.add(openImageButton);
toolBar.add(settingsButton);
getContentPane().add(toolBar, BorderLayout.NORTH);
}
private class ToolButton extends JButton implements MouseListener {
public ToolButton(AbstractAction action) {
super(action);
setText(null);
setToolTipText(action.getValue(AbstractAction.NAME).toString());
setMargin(new Insets(7, 7, 7, 7));
setBorderPainted(false);
addMouseListener(this);
}
protected void paintBorder(Graphics g) {
super.paintBorder(g);
}
public void mouseClicked(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
setBorderPainted(true);
}
public void mouseExited(MouseEvent e) {
setBorderPainted(false);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -