📄 framedesign.java
字号:
import java.util.Random;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
public class FrameDesign {
public static void main(String[] args) {
frameObject = new JFrameTest();
Dimension frameSize = frameObject.getSize();
if (frameSize.height > frameObject.screenHeight) {
frameSize.height = frameObject.screenHeight;
}
if (frameSize.width > frameObject.screenWidth) {
frameSize.width = frameObject.screenWidth;
}
frameObject.setLocation(
(frameObject.screenWidth - frameSize.width) / 2,
(frameObject.screenHeight - frameSize.height) / 2);
frameObject.setVisible(true);
frameObject.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void run(Robot robot) {
Point point = Panel.drawCanvas.getLocationOnScreen();
int paneX = point.x;
int paneY = point.y;
if (Panel.judgmentDraw == true)
image = robot.createScreenCapture(new Rectangle(paneX, paneY,
Panel.drawCanvas.getWidth(), Panel.drawCanvas.getHeight()));
else {
if (DrawingBoard.picture.getWidth(null) > Panel.drawCanvas
.getWidth()
&& DrawingBoard.picture.getHeight(null) > Panel.drawCanvas
.getHeight())
image = robot.createScreenCapture(new Rectangle(paneX, paneY,
Panel.drawCanvas.getWidth(), Panel.drawCanvas
.getHeight()));
else if (DrawingBoard.picture.getHeight(null) > Panel.drawCanvas
.getHeight())
image = robot.createScreenCapture(new Rectangle(paneX, paneY,
DrawingBoard.picture.getWidth(null), Panel.drawCanvas
.getHeight()));
else if (DrawingBoard.picture.getWidth(null) > Panel.drawCanvas
.getWidth())
image = robot.createScreenCapture(new Rectangle(paneX, paneY,
Panel.drawCanvas.getWidth(), DrawingBoard.picture
.getHeight(null)));
else
image = robot.createScreenCapture(new Rectangle(paneX, paneY,
DrawingBoard.picture.getWidth(null),
DrawingBoard.picture.getHeight(null)));
}
}
protected static BufferedImage image;
protected static JFrameTest frameObject;
}
@SuppressWarnings("serial")
class JFrameTest extends JFrame {
// 得到屏幕宽和高
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int screenWidth = screenSize.width;
int screenHeight = screenSize.height;
JMenuItem chexiaoMenu;
JMenuItem unDoMenu;
JMenuItem cutMenu;
JMenuItem copyMenu;
JMenuItem pastMenu;
JMenuItem clearSelectMenu;
JMenuItem copyToMenu;
public JFrameTest() {
setSize(screenWidth / 2, screenHeight / 2);
// 设置框架标题和ICON
Image img = kit
.getImage("E:\\java练习\\java练习\\SmallPhoto\\src\\img\\ICON.jpg");
setIconImage(img);
setTitle("未命名-SmallPhoto");
/** ****************菜单设计***************************** */
JMenuBar menuDesign = new JMenuBar();
// 文件菜单设计
JMenu fileMenu = new JMenu("文件(F)");
fileMenu.setMnemonic('F');
JMenuItem newMenu = new JMenuItem("新建(N)");
newMenu.addActionListener(new MenuEventClass());
newMenu.setMnemonic('N');
newMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,
InputEvent.CTRL_MASK));
JMenuItem openMenu = new JMenuItem("打开(O)...");
openMenu.setMnemonic('O');
openMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
InputEvent.CTRL_MASK));
JMenuItem saveMenu = new JMenuItem("保存(S)");
saveMenu.setMnemonic('S');
saveMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
InputEvent.CTRL_MASK));
JMenuItem saveAsMenu = new JMenuItem("另存为(A)...");
saveAsMenu.setMnemonic('A');
JMenuItem printViewMenu = new JMenuItem("打印预览(V)");
printViewMenu.setMnemonic('V');
JMenuItem setPageMenu = new JMenuItem("页面设置(U)...");
printViewMenu.setMnemonic('U');
JMenuItem printMenu = new JMenuItem("打印(P)...");
printMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,
InputEvent.CTRL_MASK));
printMenu.setMnemonic('P');
JMenuItem sendMenu = new JMenuItem("发送(E)...");
sendMenu.setMnemonic('E');
JMenuItem exitMenu = new JMenuItem("退出(X)");
exitMenu.setMnemonic('X');
exitMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F4,
InputEvent.ALT_MASK));
fileMenu.add(newMenu);
fileMenu.add(openMenu);
fileMenu.add(saveMenu);
fileMenu.add(saveAsMenu);
fileMenu.addSeparator();
fileMenu.add(printViewMenu);
fileMenu.add(setPageMenu);
fileMenu.add(printMenu);
fileMenu.addSeparator();
fileMenu.add(sendMenu);
fileMenu.addSeparator();
fileMenu.addSeparator();
fileMenu.add(exitMenu);
// 编辑菜单设计
JMenu editMenu = new JMenu("编辑(E)");
editMenu.setMnemonic('E');
chexiaoMenu = new JMenuItem("撤销(Z)");
chexiaoMenu.setMnemonic('Z');
// chexiaoMenu.setEnabled(false);
chexiaoMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,
InputEvent.CTRL_MASK));
unDoMenu = new JMenuItem("重做(Y)");
unDoMenu.setMnemonic('Y');
// unDoMenu.setEnabled(false);
unDoMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Y,
InputEvent.CTRL_MASK));
cutMenu = new JMenuItem("剪切(T)");
cutMenu.setMnemonic('T');
// cutMenu.setEnabled(false);
cutMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,
InputEvent.CTRL_MASK));
copyMenu = new JMenuItem("复制(C)");
copyMenu.setMnemonic('C');
// copyMenu.setEnabled(false);
copyMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,
InputEvent.CTRL_MASK));
pastMenu = new JMenuItem("粘贴(P)");
pastMenu.setMnemonic('P');
// pastMenu.setEnabled(false);
pastMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,
InputEvent.CTRL_MASK));
JMenuItem clearSelectMenu = new JMenuItem("清除选定内容(L)");
clearSelectMenu.setMnemonic('L');
// clearSelectMenu.setEnabled(false);
JMenuItem selectAllMenu = new JMenuItem("全选(A)");
selectAllMenu.setMnemonic('A');
selectAllMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,
InputEvent.CTRL_MASK));
copyToMenu = new JMenuItem("复制到(O)...");
copyToMenu.setMnemonic('O');
// copyToMenu.setEnabled(false);
JMenuItem pasteSourceMenu = new JMenuItem("粘贴来源(F)...");
pasteSourceMenu.setMnemonic('F');
editMenu.add(chexiaoMenu);
editMenu.add(unDoMenu);
editMenu.addSeparator();
editMenu.add(cutMenu);
editMenu.add(copyMenu);
editMenu.add(pastMenu);
editMenu.add(clearSelectMenu);
editMenu.add(selectAllMenu);
editMenu.addSeparator();
editMenu.add(copyToMenu);
editMenu.add(pasteSourceMenu);
MenuEventClass cKMenuEvent = new MenuEventClass();
chexiaoMenu.addActionListener(cKMenuEvent);
unDoMenu.addActionListener(cKMenuEvent);
cutMenu.addActionListener(cKMenuEvent);
copyMenu.addActionListener(cKMenuEvent);
pastMenu.addActionListener(cKMenuEvent);
clearSelectMenu.addActionListener(cKMenuEvent);
selectAllMenu.addActionListener(cKMenuEvent);
copyToMenu.addActionListener(cKMenuEvent);
pasteSourceMenu.addActionListener(cKMenuEvent);
// 查看菜单
JMenu lookMenu = new JMenu("查看(V)");
lookMenu.setMnemonic('V');
final JCheckBoxMenuItem mainToolBar = new JCheckBoxMenuItem("主工具栏(M)");
mainToolBar.setMnemonic('T');
mainToolBar.setState(true);
mainToolBar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent j) {
if (mainToolBar.getState()) {
Panel.mainToolBar.setVisible(true);
} else {
Panel.mainToolBar.setVisible(false);
}
}
});
mainToolBar.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M,
InputEvent.CTRL_MASK));
final JCheckBoxMenuItem ToolBar = new JCheckBoxMenuItem("绘图工具箱(T)");
ToolBar.setMnemonic('T');
ToolBar.setState(true);
ToolBar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent j) {
if (ToolBar.getState()) {
Panel.drawTool.setVisible(true);
} else {
Panel.drawTool.setVisible(false);
}
}
});
ToolBar.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,
InputEvent.CTRL_MASK));
final JCheckBoxMenuItem colorToolBar = new JCheckBoxMenuItem("颜料箱(C)");
colorToolBar.setMnemonic('C');
colorToolBar.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,
InputEvent.CTRL_MASK));
colorToolBar.setState(true);
colorToolBar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent j) {
if (colorToolBar.isSelected()) {
Panel.color.setVisible(true);
Panel.colorAndState.setVisible(true);
} else {
Panel.color.setVisible(false);
if (Panel.color.isVisible() || Panel.state.isVisible()) {
Panel.colorAndState.setVisible(true);
} else {
Panel.colorAndState.setVisible(false);
}
}
}
});
final JCheckBoxMenuItem stateToolBar = new JCheckBoxMenuItem("状态栏(S)");
stateToolBar.setMnemonic('S');
stateToolBar.setState(true);
stateToolBar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent j) {
if (stateToolBar.isSelected()) {
Panel.state.setVisible(true);
Panel.colorAndState.setVisible(true);
} else {
Panel.state.setVisible(false);
if (Panel.color.isVisible() || Panel.state.isVisible()) {
Panel.colorAndState.setVisible(true);
} else {
Panel.colorAndState.setVisible(false);
}
}
}
});
fontToolMenu = new JMenuItem("文字工具栏(E)");
fontToolMenu.setMnemonic('E');
fontToolMenu.setEnabled(false);
JMenu xuoFangMenu = new JMenu("缩放(Z)");
xuoFangMenu.setMnemonic('Z');
final JMenuItem normalMenu = new JMenuItem("常规尺寸(N)");
normalMenu.setMnemonic('N');
normalMenu.setEnabled(false);
normalMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN,
InputEvent.CTRL_MASK));
final JMenuItem bigMenu = new JMenuItem("大尺寸(L)");
bigMenu.setMnemonic('L');
bigMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_UP,
InputEvent.CTRL_MASK));
JMenuItem defineMenu = new JMenuItem("自定义(U)...");
defineMenu.setMnemonic('U');
xuoFangMenu.add(normalMenu);
xuoFangMenu.add(bigMenu);
xuoFangMenu.add(defineMenu);
final JMenuItem showMenu = new JMenuItem("捕获屏幕(H)...");
showMenu.addActionListener(new lookBitmap());
showMenu.setMnemonic('H');
lookAndFeel = new JMenu("观感");
UIManager.LookAndFeelInfo[] infos = UIManager
.getInstalledLookAndFeels();
for (UIManager.LookAndFeelInfo info : infos) {
makeMenuItem(info.getName(), info.getClassName());
}
lookMenu.add(mainToolBar);
lookMenu.add(ToolBar);
lookMenu.add(colorToolBar);
lookMenu.add(stateToolBar);
lookMenu.add(fontToolMenu);
lookMenu.addSeparator();
lookMenu.add(xuoFangMenu);
lookMenu.add(showMenu);
lookMenu.addSeparator();
lookMenu.add(lookAndFeel);
normalMenu.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
normalMenu.setEnabled(false);
bigMenu.setEnabled(true);
MenuEventClass.srcFlag = false;
MenuEventClass.scale(DrawingBoard.picture, 2,
MenuEventClass.srcFlag);
}
});
bigMenu.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
bigMenu.setEnabled(false);
normalMenu.setEnabled(true);
MenuEventClass.srcFlag = true;
MenuEventClass.scale(DrawingBoard.picture, 2,
MenuEventClass.srcFlag);
}
});
// 图像菜单
JMenu imageMenu = new JMenu("图像(I)");
imageMenu.setMnemonic('I');
JMenuItem xuanZuanMenu = new JMenuItem("旋转/翻转(F)...");
xuanZuanMenu.setMnemonic('F');
xuanZuanMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,
InputEvent.CTRL_MASK));
JMenuItem laShenMenu = new JMenuItem("拉伸/扭曲(S)...");
laShenMenu.setMnemonic('S');
laShenMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W,
InputEvent.CTRL_MASK));
JMenuItem objectMenu = new JMenuItem("反色(O)");
objectMenu.setMnemonic('O');
objectMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I,
InputEvent.SHIFT_MASK));
JMenuItem mistyMenu = new JMenuItem("模糊(M)");
mistyMenu.setMnemonic('M');
mistyMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M,
InputEvent.SHIFT_MASK));
JMenuItem lightMenu = new JMenuItem("加亮(L)");
lightMenu.setMnemonic('L');
lightMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,
InputEvent.SHIFT_MASK));
JMenuItem ruiMenu = new JMenuItem("锐化(R)");
ruiMenu.setMnemonic('R');
ruiMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
InputEvent.SHIFT_MASK));
JMenuItem edgeMenu = new JMenuItem("边缘(E)");
edgeMenu.setMnemonic('E');
edgeMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
InputEvent.SHIFT_MASK));
JMenuItem shuXingMenu = new JMenuItem("属性(A)...");
shuXingMenu.setMnemonic('A');
shuXingMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,
InputEvent.CTRL_MASK));
JMenuItem clearImageMenu = new JMenuItem("清除图像(C)");
clearImageMenu.setMnemonic('C');
clearImageMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,
InputEvent.SHIFT_MASK));
JCheckBoxMenuItem chuLiMenu = new JCheckBoxMenuItem("不透明处理(D)");
chuLiMenu.setMnemonic('D');
chuLiMenu.setState(true);
imageMenu.add(xuanZuanMenu);
imageMenu.add(laShenMenu);
imageMenu.addSeparator();
imageMenu.add(lightMenu);
imageMenu.add(ruiMenu);
imageMenu.add(edgeMenu);
imageMenu.add(mistyMenu);
imageMenu.add(objectMenu);
imageMenu.addSeparator();
imageMenu.add(shuXingMenu);
imageMenu.add(clearImageMenu);
imageMenu.addSeparator();
imageMenu.add(chuLiMenu);
lightMenu.addActionListener(new ImageProcess());
ruiMenu.addActionListener(new ImageProcess());
edgeMenu.addActionListener(new ImageProcess());
mistyMenu.addActionListener(new ImageProcess());
objectMenu.addActionListener(new ImageProcess());
// 颜色菜单
JMenu colorMenu = new JMenu("颜色(C)");
colorMenu.setMnemonic('C');
JMenuItem editColorMenu = new JMenuItem("编辑颜色(E)...");
editColorMenu.setMnemonic('E');
colorMenu.add(editColorMenu);
// 帮助菜单
JMenu helpMenu = new JMenu("帮助(H)");
helpMenu.setMnemonic('H');
JMenuItem mainSubjectMenu = new JMenuItem("帮助主题(H)");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -