📄 drawingpad_java.htm
字号:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="java2html 1.7
by Lorenzo Bettini, bettini@gnu.org
http://w3.newnet.it/bettini
http://www.gnu.org/software/java2html/java2html.html">
<title>/home/jia/Books/Java-Examples-2ed/src/Chapter09/draw3/DrawingPad.java</title>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000EE" vlink="#551A8B" alink="#FF0000">
<pre>
<tt>
<b><font color=#0000FF>package</font></b> draw3;
<b><font color=#0000FF>import</font></b> java.awt.*;
<b><font color=#0000FF>import</font></b> java.awt.event.*;
<b><font color=#0000FF>import</font></b> java.io.*;
<b><font color=#0000FF>import</font></b> javax.swing.*;
<b><font color=#0000FF>import</font></b> draw2.*;
<b><font color=#0000FF>import</font></b> scribble3.*;
<b><font color=#0000FF>public</font></b> <b><font color=#0000FF>class</font></b> DrawingPad <b><font color=#0000FF>extends</font></b> draw2.DrawingPad {
<b><font color=#0000FF>public</font></b> DrawingPad(String title) {
<b><font color=#0000FF>super</font></b>(title);
JMenu optionMenu = menuBar.getMenu(<font color=#993399>2</font>);
addFontOptions(optionMenu);
}
<i><font color=#9A1900>// factory method
</font></i> <b><font color=#0000FF>protected</font></b> ScribbleCanvas makeCanvas() {
<b><font color=#0000FF>return</font></b> (drawingCanvas = keyboardDrawingCanvas = <b><font color=#0000FF>new</font></b> KeyboardDrawingCanvas());
}
<b><font color=#0000FF>protected</font></b> <font color=#009900>void</font> initTools() {
<b><font color=#0000FF>super</font></b>.initTools();
toolkit.addTool(<b><font color=#0000FF>new</font></b> TextTool(canvas, <font color=#FF0000>"Text"</font>));
}
<b><font color=#0000FF>protected</font></b> <font color=#009900>void</font> addFontOptions(JMenu optionMenu) {
String[] fontFamilyNames = {
<font color=#FF0000>"Serif"</font>,
<font color=#FF0000>"Sans-serif"</font>,
<font color=#FF0000>"Monospaced"</font>,
<font color=#FF0000>"Dialog"</font>,
<font color=#FF0000>"DialogInput"</font>
};
<font color=#009900>int</font>[] fontSizes = {
<font color=#993399>8</font>, <font color=#993399>10</font>, <font color=#993399>12</font>, <font color=#993399>16</font>, <font color=#993399>20</font>, <font color=#993399>24</font>, <font color=#993399>28</font>, <font color=#993399>32</font>, <font color=#993399>40</font>, <font color=#993399>48</font>, <font color=#993399>64</font>
};
String[] fontStyleNames = {
<font color=#FF0000>"plain"</font>,
<font color=#FF0000>"bold"</font>,
<font color=#FF0000>"italic"</font>,
<font color=#FF0000>"bold italic"</font>
};
<font color=#009900>int</font> i;
ActionListener fontFamilyAction = <b><font color=#0000FF>new</font></b> ActionListener() {
<b><font color=#0000FF>public</font></b> <font color=#009900>void</font> actionPerformed(ActionEvent event) {
Object source = event.getSource();
<b><font color=#0000FF>if</font></b> (source <b><font color=#0000FF>instanceof</font></b> JCheckBoxMenuItem) {
JCheckBoxMenuItem mi = (JCheckBoxMenuItem) source;
String name = mi.getText();
keyboardDrawingCanvas.setFontFamily(name);
}
}
};
JMenu fontFamilyMenu = <b><font color=#0000FF>new</font></b> JMenu(<font color=#FF0000>"Font family"</font>);
ButtonGroup group = <b><font color=#0000FF>new</font></b> ButtonGroup();
<b><font color=#0000FF>for</font></b> (i = <font color=#993399>0</font>; i < fontFamilyNames.length; i++) {
JCheckBoxMenuItem mi = <b><font color=#0000FF>new</font></b> JCheckBoxMenuItem(fontFamilyNames[i]);
fontFamilyMenu.add(mi);
mi.addActionListener(fontFamilyAction);
group.add(mi);
}
optionMenu.add(fontFamilyMenu);
ActionListener fontSizeAction = <b><font color=#0000FF>new</font></b> ActionListener() {
<b><font color=#0000FF>public</font></b> <font color=#009900>void</font> actionPerformed(ActionEvent event) {
Object source = event.getSource();
<b><font color=#0000FF>if</font></b> (source <b><font color=#0000FF>instanceof</font></b> JCheckBoxMenuItem) {
JCheckBoxMenuItem mi = (JCheckBoxMenuItem) source;
String size = mi.getText();
<b><font color=#0000FF>try</font></b> {
keyboardDrawingCanvas.setFontSize(Integer.parseInt(size));
} <b><font color=#0000FF>catch</font></b> (NumberFormatException e) {}
}
}
};
JMenu fontSizeMenu = <b><font color=#0000FF>new</font></b> JMenu(<font color=#FF0000>"Font size"</font>);
group = <b><font color=#0000FF>new</font></b> ButtonGroup();
<b><font color=#0000FF>for</font></b> (i = <font color=#993399>0</font>; i < fontSizes.length; i++) {
JCheckBoxMenuItem mi = <b><font color=#0000FF>new</font></b> JCheckBoxMenuItem(Integer.toString(fontSizes[i]));
fontSizeMenu.add(mi);
mi.addActionListener(fontSizeAction);
group.add(mi);
}
optionMenu.add(fontSizeMenu);
ActionListener fontStyleAction = <b><font color=#0000FF>new</font></b> ActionListener() {
<b><font color=#0000FF>public</font></b> <font color=#009900>void</font> actionPerformed(ActionEvent event) {
Object source = event.getSource();
<b><font color=#0000FF>if</font></b> (source <b><font color=#0000FF>instanceof</font></b> JCheckBoxMenuItem) {
JCheckBoxMenuItem mi = (JCheckBoxMenuItem) source;
String styleName = mi.getText();
<font color=#009900>int</font> style = Font.PLAIN;
<b><font color=#0000FF>if</font></b> (styleName.equals(<font color=#FF0000>"bold"</font>)) {
style = Font.BOLD;
} <b><font color=#0000FF>else</font></b> <b><font color=#0000FF>if</font></b> (styleName.equals(<font color=#FF0000>"italic"</font>)) {
style = Font.ITALIC;
} <b><font color=#0000FF>else</font></b> <b><font color=#0000FF>if</font></b> (styleName.equals(<font color=#FF0000>"bold italic"</font>)) {
style = Font.BOLD | Font.ITALIC;
}
keyboardDrawingCanvas.setFontStyle(style);
}
}
};
JMenu fontStyleMenu = <b><font color=#0000FF>new</font></b> JMenu(<font color=#FF0000>"Font style"</font>);
group = <b><font color=#0000FF>new</font></b> ButtonGroup();
<b><font color=#0000FF>for</font></b> (i = <font color=#993399>0</font>; i < fontStyleNames.length; i++) {
JCheckBoxMenuItem mi = <b><font color=#0000FF>new</font></b> JCheckBoxMenuItem(fontStyleNames[i]);
fontStyleMenu.add(mi);
mi.addActionListener(fontStyleAction);
group.add(mi);
}
optionMenu.add(fontStyleMenu);
}
<b><font color=#0000FF>protected</font></b> KeyboardDrawingCanvas keyboardDrawingCanvas;
<b><font color=#0000FF>public</font></b> <b><font color=#0000FF>static</font></b> <font color=#009900>void</font> main(String[] args) {
JFrame frame = <b><font color=#0000FF>new</font></b> draw3.DrawingPad(<font color=#FF0000>"Drawing Pad"</font>);
frame.setSize(width, height);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
frame.setLocation(screenSize.width/<font color=#993399>2</font> - width/<font color=#993399>2</font>,
screenSize.height/<font color=#993399>2</font> - height/<font color=#993399>2</font>);
frame.show();
}
}
</tt>
</pre>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -