📄 framedesign.java
字号:
mainSubjectMenu.setMnemonic('H');
JMenuItem aboutDrawMenu = new JMenuItem("关于SmallPhoto(C)");
aboutDrawMenu.setMnemonic('C');
helpMenu.add(mainSubjectMenu);
helpMenu.addSeparator();
helpMenu.add(aboutDrawMenu);
menuDesign.add(fileMenu);
menuDesign.add(editMenu);
menuDesign.add(lookMenu);
menuDesign.add(imageMenu);
menuDesign.add(colorMenu);
menuDesign.add(helpMenu);
setJMenuBar(menuDesign);
// 调用事件
MenuEventClass menuEvent = new MenuEventClass();
editColorMenu.addActionListener(menuEvent);
aboutDrawMenu.addActionListener(menuEvent);
newMenu.addActionListener(menuEvent);
openMenu.addActionListener(menuEvent);
shuXingMenu.addActionListener(menuEvent);
defineMenu.addActionListener(menuEvent);
saveMenu.addActionListener(menuEvent);
saveAsMenu.addActionListener(menuEvent);
printViewMenu.addActionListener(menuEvent);
setPageMenu.addActionListener(menuEvent);
printMenu.addActionListener(menuEvent);
sendMenu.addActionListener(menuEvent);
exitMenu.addActionListener(menuEvent);
normalMenu.addActionListener(menuEvent);
bigMenu.addActionListener(menuEvent);
fontToolMenu.addActionListener(menuEvent);
clearSelectMenu.addActionListener(menuEvent);
clearImageMenu.addActionListener(menuEvent);
chuLiMenu.addActionListener(menuEvent);
xuanZuanMenu.addActionListener(menuEvent);
laShenMenu.addActionListener(menuEvent);
Panel mainPane = new Panel();
add(mainPane);
}
public void makeMenuItem(String name, final String plafName) {
JMenuItem menu = new JMenuItem(name);
lookAndFeel.add(menu);
menu.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
try {
UIManager.setLookAndFeel(plafName);
SwingUtilities.updateComponentTreeUI(JFrameTest.this);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
protected static JMenuItem fontToolMenu;
private JMenu lookAndFeel;
}
@SuppressWarnings("serial")
class Panel extends JPanel {
public Panel() {
board = new DrawingBoard();
setLayout(new BorderLayout());
/***********************************************************************
* ******************************************************************
* ***************************主工具栏********************************
* ******************************************************************
**********************************************************************/
mainToolBar = new JPanel();
mainToolBar.setLayout(new GridLayout(1, 2));
JToolBar toolBar = new JToolBar();
newButton = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\新建.jpg"));
newButton.setToolTipText("新建");
openButton = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\打开.jpg"));
openButton.setToolTipText("打开");
saveButton = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\保存.jpg"));
saveButton.setToolTipText("保存");
// saveButton.setEnabled(false);
printButton = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\打印.jpg"));
printButton.setToolTipText("打印");
// printButton.setEnabled(false);
printViewButton = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\打印预览.jpg"));
printViewButton.setToolTipText("打印预览");
// printViewButton.setEnabled(false);
cheXiaoButton = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\撤销.jpg"));
cheXiaoButton.setToolTipText("撤销");
// cheXiaoButton.setEnabled(false);
chongZuoButton = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\重做.jpg"));
chongZuoButton.setToolTipText("重做");
// chongZuoButton.setEnabled(false);
cutButton = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\剪切.jpg"));
cutButton.setToolTipText("剪切");
// cutButton.setEnabled(false);
copyButton = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\复制.jpg"));
copyButton.setToolTipText("复制");
// copyButton.setEnabled(false);
pasteButton = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\粘贴.jpg"));
pasteButton.setToolTipText("粘贴");
// pasteButton.setEnabled(false);
bgButton = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\背景色.jpg"));
bgButton.setToolTipText("背景色");
toolBar.add(newButton);
toolBar.add(openButton);
toolBar.add(saveButton);
toolBar.addSeparator(new Dimension(5, 25));
toolBar.add(printButton);
toolBar.add(printViewButton);
toolBar.addSeparator(new Dimension(5, 25));
toolBar.add(cheXiaoButton);
toolBar.add(chongZuoButton);
toolBar.addSeparator(new Dimension(5, 25));
toolBar.add(cutButton);
toolBar.add(copyButton);
toolBar.add(pasteButton);
toolBar.addSeparator(new Dimension(5, 25));
toolBar.add(bgButton);
toolBar.addSeparator(new Dimension(5, 25));
newButton.addActionListener(new MenuEventClass());
openButton.addActionListener(new MenuEventClass());
saveButton.addActionListener(new MenuEventClass());
printButton.addActionListener(new MenuEventClass());
printViewButton.addActionListener(new MenuEventClass());
cheXiaoButton.addActionListener(new MenuEventClass());
chongZuoButton.addActionListener(new MenuEventClass());
cutButton.addActionListener(new MenuEventClass());
copyButton.addActionListener(new MenuEventClass());
pasteButton.addActionListener(new MenuEventClass());
bgButton.addActionListener(new MenuEventClass());
toolBar.setFloatable(false);
JToolBar linePane = new JToolBar();
String[] lineSize = new String[] { "Stroke Weight1.0X",
"Stroke Weight2.0X", "Stroke Weight5.0X", "Stroke Weight7.5X",
"Stroke Weight10.0X" };
final JComboBox sizeSet = new JComboBox(lineSize);
sizeSet.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DrawingBoard.strokeIndex = sizeSet.getSelectedIndex();
}
});
linePane.add(new JLabel("画笔大小:"));
linePane.add(sizeSet);
linePane.setFloatable(false);
JToolBar eraseSize = new JToolBar();
String[] eraserSize = new String[] { "Eraser Size 15px",
"Eraser Size 20px", "Eraser Size 30px", "Eraser Size 50px",
"Eraser Size 100px" };
final JComboBox eraseSet = new JComboBox(eraserSize);
eraseSet.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DrawingBoard.eraserIndex = eraseSet.getSelectedIndex();
}
});
eraseSize.add(new JLabel("橡皮擦大小:"));
eraseSize.add(eraseSet);
eraseSize.setFloatable(false);
mainToolBar.add(toolBar);
mainToolBar.add(linePane);
mainToolBar.add(eraseSize);
/***********************************************************************
* ****************************************************
* ************************绘图工具栏********************
* ****************************************************
**********************************************************************/
drawTool = new JToolBar();
drawTool.setFloatable(false);
drawTool.setMargin(new Insets(0, 0, 0, 0));
drawTool.setOrientation(1);
drawTool.setLayout(new GridLayout(18, 1));
JButton select = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\选定.jpg"));
select.setBorderPainted(false);
select.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
board.setTool(DrawingBoard.TOOL_CLIPRECT);
}
});
drawTool.add(select);
JButton eraser = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\橡皮.jpg"));
eraser.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
board.setTool(DrawingBoard.TOOL_ERASER);
}
});
eraser.setBorderPainted(false);
drawTool.add(eraser);
JButton quSe = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\吸管.jpg"));
quSe.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
board.setTool(DrawingBoard.TOOL_QUSHE);
}
});
quSe.setBorderPainted(false);
drawTool.add(quSe);
JButton fangDaJing = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\放大镜.jpg"));
fangDaJing.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFrameTest.fontToolMenu.setEnabled(true);
board.setTool(DrawingBoard.TOOL_FANGDAJING);
}
});
fangDaJing.setBorderPainted(false);
drawTool.add(fangDaJing);
JButton pencil = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\铅笔.jpg"));
pencil.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
board.setTool(DrawingBoard.TOOL_PENCIL);
Image curImg = Toolkit.getDefaultToolkit().getImage(
"C:\\WINDOWS\\Cursors\\pen_l.jpg");
Cursor cur = Toolkit.getDefaultToolkit().createCustomCursor(
curImg,
new Point(DrawingBoard.mouseY, DrawingBoard.mouseX),
"pen");
drawCanvas.setCursor(cur);
}
});
pencil.setBorderPainted(false);
drawTool.add(pencil);
JButton brush = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\刷子.jpg"));
brush.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new StrokeTest().main(null);
JFrameTest.fontToolMenu.setEnabled(true);
board.setTool(DrawingBoard.TOOL_BRUSH);
}
});
brush.setBorderPainted(false);
drawTool.add(brush);
JButton penQiang = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\喷枪.jpg"));
penQiang.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFrameTest.fontToolMenu.setEnabled(true);
board.setTool(DrawingBoard.TOOL_PENQIANG);
}
});
penQiang.setBorderPainted(false);
drawTool.add(penQiang);
JButton font = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\字体.jpg"));
font.setBorderPainted(false);
font.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFrameTest.fontToolMenu.setEnabled(true);
board.setTool(DrawingBoard.TOOL_TEXT);
}
});
drawTool.add(font);
JButton line = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\直线.jpg"));
line.setBorderPainted(false);
line.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
board.setTool(DrawingBoard.TOOL_LINE);
}
});
drawTool.add(line);
JButton quXian = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\曲线.jpg"));
quXian.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
board.setTool(DrawingBoard.TOOL_CURVE);
}
});
quXian.setBorderPainted(false);
drawTool.add(quXian);
JButton rect = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\四边形.jpg"));
rect.setBorderPainted(false);
rect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
board.setTool(DrawingBoard.TOOL_RECT);
}
});
drawTool.add(rect);
JButton POLYGON = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\多边形.jpg"));
POLYGON.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
board.setTool(DrawingBoard.TOOL_POLYGON);
}
});
POLYGON.setBorderPainted(false);
drawTool.add(POLYGON);
JButton oval = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\圆形.jpg"));
oval.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
board.setTool(DrawingBoard.TOOL_OVAL);
}
});
oval.setBorderPainted(false);
drawTool.add(oval);
JButton yuJiaoJuXing = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\圆角矩形.jpg"));
yuJiaoJuXing.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
board.setTool(DrawingBoard.TOOL_ROUNDRECT);
}
});
yuJiaoJuXing.setBorderPainted(false);
drawTool.add(yuJiaoJuXing);
JButton diamond = new JButton(new ImageIcon(
"E:\\java练习\\java练习\\SmallPhoto\\src\\img\\菱形.jpg"));
diamond.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
board.setTool(DrawingBoard.TOOL_DIAMOND);
}
});
diamond.setBorderPainted(false);
drawTool.add(diamond);
/***********************************************************************
* ************************颜色工具箱************************
**********************************************************************/
colorAndState = new JPanel();
colorAndState.setLayout(new GridLayout(2, 1));
color = new JToolBar();
color.setFloatable(false);
color.setLayout(new GridLayout(2, 75));
for (int i = 50; i < 200; i++) {
Random r = new Random();
Random g = new Random();
Random b = new Random();
colorButton(new JButton(), new Color(
(int) (r.nextFloat() * 255 + 1),
(int) (g.nextFloat() * 255 + 1),
(int) (b.nextFloat() * 255 + 1)));
}
/***********************************************************************
* *******************状态栏********************
**********************************************************************/
state = new JToolBar();
state.setFloatable(false);
state.add(new JLabel("要获得帮助,请在\"帮助\"菜单中,单击\"帮助主题\"。"));
colorAndState.add(color);
colorAndState.add(state);
/***********************************************************************
* *********************画布*********************
**********************************************************************/
drawCanvas = new DrawingBoard();
add(mainToolBar, BorderLayout.NORTH);
add(drawTool, BorderLayout.WEST);
add(new JScrollPane(drawCanvas), BorderLayout.CENTER);
add(colorAndState, BorderLayout.SOUTH);
}
public void colorButton(final JButton corBtn, Color backColor) {
color.add(corBtn);
corBtn.setBackground(backColor);
corBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent f) {
shapeColor = corBtn.getBackground();
}
});
}
protected static boolean judgmentDraw = false;
protected static boolean inputText = false;
protected static DrawingBoard drawCanvas;
protected static DrawingBoard board;
protected static JPanel colorAndState;
protected static JPanel mainToolBar;
protected static Color shapeColor;
protected static JToolBar color;
protected static JToolBar drawTool;
protected static JToolBar state;
protected static String darwBoardText;
protected static JButton bgButton;
protected static JButton newButton;
protected static JButton openButton;
protected static JButton saveButton;
protected static JButton saveAsButton;
protected static JButton printButton;
protected static JButton cheXiaoButton;
protected static JButton chongZuoButton;
protected static JButton cutButton;
protected static JButton copyButton;
protected static JButton pasteButton;
protected static JButton printViewButton;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -