JavaGUI开发:Sketcher应用的功能增强与架构设计
立即解锁
发布时间: 2025-08-18 02:26:31 阅读量: 2 订阅数: 11 

Java编程实战:从入门到精通
### Java GUI开发:Sketcher应用的功能增强与架构设计
在Java GUI开发中,我们可以对应用程序进行一系列功能增强,如添加菜单项图标、工具提示以及采用模型/视图架构等。下面将详细介绍这些功能的实现方法和原理。
#### 1. 添加菜单项图标
为了让应用程序的GUI更加丰富,我们可以为菜单项添加图标。具体操作步骤如下:
- **定义图标**:在SketcherConstants类中定义菜单项的图标,示例代码如下:
```java
// Menu item icons
public final static Icon NEW16 = new ImageIcon(imagePath + "new16.gif");
public final static Icon OPEN16 = new ImageIcon(imagePath + "Open16.gif");
public final static Icon SAVE16 = new ImageIcon(imagePath + " Save16.gif");
public final static Icon SAVEAS16 = new ImageIcon(imagePath + "SaveAs16.gif");
public final static Icon PRINT16 = new ImageIcon(imagePath + "print16.gif");
public final static Icon LINE16 = new ImageIcon(imagePath + "Line16.gif");
public final static Icon RECTANGLE16 = new ImageIcon(imagePath + "Rectangle16.gif");
public final static Icon CIRCLE16 = new ImageIcon(imagePath + "Circle16.gif");
public final static Icon CURVE16 = new ImageIcon(imagePath + "Curve16.gif");
public final static Icon RED16 = new ImageIcon(imagePath + "Red16.gif");
public final static Icon GREEN16 = new ImageIcon(imagePath + "Green16.gif");
public final static Icon BLUE16 = new ImageIcon(imagePath + "Blue16.gif");
public final static Icon YELLOW16 = new ImageIcon(imagePath + "Yellow16.gif");
```
这些图标大小为16×16像素,与菜单项相匹配。
- **使用图标**:在创建菜单项的方法中,为Action对象添加小图标。例如,在`createFileMenuActions()`方法中添加如下代码:
```java
private void createFileMenuActions() {
// Code to create action objects as before...
// Code to add large icons to the action objects as before...
// Add menu item actions
newAction.putValue(SMALL_ICON, NEW16);
openAction.putValue(SMALL_ICON, OPEN16);
saveAction.putValue(SMALL_ICON, SAVE16);
saveAsAction.putValue(SMALL_ICON,SAVEAS16);
printAction.putValue(SMALL_ICON, PRINT16);
}
```
对于Elements菜单项和颜色菜单项,也可以采用类似的方法添加图标。在`createElementTypeActions()`方法末尾添加:
```java
lineAction.putValue(SMALL_ICON, LINE16);
rectangleAction.putValue(SMALL_ICON, RECTANGLE16);
circleAction.putValue(SMALL_ICON, CIRCLE16);
curveAction.putValue(SMALL_ICON, CURVE16);
```
在`createElementColorActions()`方法中添加:
```java
redAction.putValue(SMALL_ICON, RED16);
blueAction.putValue(SMALL_ICON, BLUE16);
greenAction.putValue(SMALL_ICON, GREEN16);
yellowAction.putValue(SMALL_ICON, YELLOW16);
```
- **控制图标显示**:如果不想在菜单项上显示图标,可以使用`setIcon(null)`方法,示例如下:
```java
menuItem.setIcon(null);
```
#### 2. 添加工具提示
工具提示是当鼠标悬停在GUI元素上时自动显示的小文本提示。在Java中实现工具提示非常简单,利用Action对象的`SHORT_DESCRIPTION`键即可。具体操作步骤如下:
- **添加工具提示文本**:在`createFileMenuActions()`方法中添加工具提示文本,示例代码如下:
```java
private void createFileMenuActions() {
// Code to create action objects as before...
// Code to add large icons to the action objects as before...
// Code to add small icons to the action objects as before...
// Add tooltip text
newAction.putValue(SHORT_DESCRIPTION, "Create a new sketch");
openAction.putValue(SHORT_DESCRIPTION, "Read a sketch from a file");
saveAction.putValue(SHORT_DESCRIPTION, "Save the current sketch to file");
saveAsAction.putValue(SHORT_DESCRIPTION, "Save the current sketch to a new file");
printAction.putValue(SHORT_DESCRIPTION, "Print the current sketch");
}
```
在`createElementTypeActions()`方法末尾添加:
```java
lineAction.putValue(SHORT_DESCRIPTION, "Draw lines");
rectangleAction.putValue(SHORT_DESCRIPTION, "Draw rectangles");
circleAction.putValue(SHORT_DESCRIPTION, "Draw circles");
curveAction.putValue(SHORT_DESCRIPTION, "Draw curves");
```
在`createElementColorActions()`方法中添加:
```java
redAction.putValue(SHORT_DESCRIPTION, "Draw in red");
blueAction.putValue(SHORT_DESCRIPTION, "Draw in blue");
greenAction.putValue(SHORT_DESCRIPTION,
```
0
0
复制全文


