📄 line_stroke_canvas.java
字号:
package ch05;
import java.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
public class Line_Stroke_Canvas
extends GameCanvas {
//获取绘制上下文
Graphics g = getGraphics();
//声明一个代表线宽的int型属性变量
int lineWidth = 1;
//变量w和h为模拟器的当前屏幕宽度和高度
int w = getWidth();
int h = getHeight();
//构造器
public Line_Stroke_Canvas() throws IOException {
//支持按键事件
super(false);
setTitle("改变直线宽度实例");
}
//启动绘制
public void start() {
render(g, 1);
}
/*
3.绘制方法
*/
void render(Graphics g, int width) {
//刷新屏幕为白色
g.setColor(255, 255, 255);
g.fillRect(0, 0, w, h);
//设置线体颜色为红色
g.setColor(0xff0000);
for (int i = 0; i < width; i = i + 1) {
g.drawLine(w / 3 - i, h / 3 - i, w - w / 3 + i, h / 3 - i);
g.drawLine(w - w / 3 + i, h / 3 - i, w - w / 3 + i, h - h / 3 + i);
g.drawLine(w - w / 3 + i, h - h / 3 + i, w / 3 - i, h - h / 3 + i);
g.drawLine(w / 3 - i, h - h / 3 + i, w / 3 - i, h / 3 - i);
}
flushGraphics();
}
//响应连续按键事件
public void keyRepeated(int key) {
keyPressed(key);
}
/*
4.响应按键事件
*/
public void keyPressed(int key) {
int action = getGameAction(key);
switch (action) {
case RIGHT:
if (lineWidth > 19) {
lineWidth = 20;
}
else {
lineWidth += 1;
}
break;
case LEFT:
if (lineWidth < 2) {
lineWidth = 1;
}
else {
lineWidth -= 1;
}
break;
case UP:
if (lineWidth > 19) {
lineWidth = 20;
}
else {
lineWidth += 1;
}
break;
case DOWN:
if (lineWidth < 2) {
lineWidth = 1;
}
else {
lineWidth -= 1;
}
break;
default:
return;
}
render(g, lineWidth);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -