提交 086cbc8b 编写于 作者: W wizardforcel

2020-06-21 11:01:30

上级 c83ebd6e
...@@ -218,7 +218,7 @@ event.doit = messageBox.open() == SWT.YES; ...@@ -218,7 +218,7 @@ event.doit = messageBox.open() == SWT.YES;
``` ```
`doit`事件设置为 false 会取消该事件; 设置为 true 允许它。 `doit`事件设置为`false`会取消该事件; 设置为`true`允许它。
## 目录对话框 ## 目录对话框
......
...@@ -583,7 +583,7 @@ gc.setAlpha(i * 25); ...@@ -583,7 +583,7 @@ gc.setAlpha(i * 25);
``` ```
`setAlpha()`方法设置 aplha 透明度值。 `setAlpha()`方法设置 alpha 透明度值。
![Transparent rectangles](img/b754de4d4aea4dc4f4a37442203188ef.jpg) ![Transparent rectangles](img/b754de4d4aea4dc4f4a37442203188ef.jpg)
...@@ -673,7 +673,7 @@ public class DonutEx { ...@@ -673,7 +673,7 @@ public class DonutEx {
``` ```
在此示例中,我们创建一个甜甜圈。 形状类似于 Cookie,因此称为甜甜圈。 在此示例中,我们创建一个甜甜圈。 形状类似于饼干,因此称为甜甜圈。
``` ```
gc.setAntialias(SWT.ON); gc.setAntialias(SWT.ON);
...@@ -701,7 +701,7 @@ for (int rot = 0; rot < 36; rot++) { ...@@ -701,7 +701,7 @@ for (int rot = 0; rot < 36; rot++) {
``` ```
for 循环中,我们进行旋转操作并绘制椭圆。 `for`循环中,我们进行旋转操作并绘制椭圆。
## 绘制文字 ## 绘制文字
......
# Java SWT 中的 Nibbles # Java SWT 中的贪食蛇
> 原文: [http://zetcode.com/gui/javaswt/nibbles/](http://zetcode.com/gui/javaswt/nibbles/) > 原文: [http://zetcode.com/gui/javaswt/nibbles/](http://zetcode.com/gui/javaswt/nibbles/)
在 Java SWT 教程的这一部分中,我们创建了 Nibbles 游戏克隆。 在 Java SWT 教程的这一部分中,我们创建了贪食蛇游戏克隆。
Nibbles 是较旧的经典视频游戏。 它最初是在 70 年代后期创建的; 后来它被带到 PC 上。 在此游戏中,玩家控制蛇。 目的是尽可能多地吃苹果。 蛇每次吃一个苹果,它的身体就会长大。 蛇必须避开墙壁和自己的身体。 贪食蛇是较旧的经典视频游戏。 它最初是在 70 年代后期创建的; 后来它被带到 PC 上。 在此游戏中,玩家控制蛇。 目的是尽可能多地吃苹果。 蛇每次吃一个苹果,它的身体就会长大。 蛇必须避开墙壁和自己的身体。
## 开发 ## 开发
...@@ -316,7 +316,7 @@ runnable = new Runnable() { ...@@ -316,7 +316,7 @@ runnable = new Runnable() {
``` ```
每隔 DELAY ms,将调用`run()`方法。 如果我们参与了游戏,我们将调用三种构建游戏逻辑的方法。 每隔`DELAY` ms,将调用`run()`方法。 如果我们参与了游戏,我们将调用三种构建游戏逻辑的方法。
``` ```
if (inGame) { if (inGame) {
...@@ -360,7 +360,7 @@ public void checkApple() { ...@@ -360,7 +360,7 @@ public void checkApple() {
``` ```
`checkApple()`方法检查蛇是否击中了苹果对象。 如果是这样,我们添加另一个蛇形关节并调用`locateApple()`方法,该方法将随机放置一个新的 Apple 对象。 `checkApple()`方法检查蛇是否击中了苹果对象。 如果是这样,我们添加另一个蛇形关节并调用`locateApple()`方法,该方法将随机放置一个新的`Apple`对象。
`move()`方法中,我们有游戏的密钥算法。 要了解它,请看一下蛇是如何运动的。 您控制蛇的头。 您可以使用光标键更改其方向。 其余关节在链上向上移动一个位置。 第二关节移动到第一个关节的位置,第三关节移动到第二个关节的位置,依此类推。 `move()`方法中,我们有游戏的密钥算法。 要了解它,请看一下蛇是如何运动的。 您控制蛇的头。 您可以使用光标键更改其方向。 其余关节在链上向上移动一个位置。 第二关节移动到第一个关节的位置,第三关节移动到第二个关节的位置,依此类推。
...@@ -413,7 +413,7 @@ int r = (int) (Math.random() * RAND_POS); ...@@ -413,7 +413,7 @@ int r = (int) (Math.random() * RAND_POS);
``` ```
我们得到一个从 0 到`RAND_POS`-1 的随机数。 我们得到一个从 0 到`RAND_POS-1`的随机数。
``` ```
apple_x = ((r * DOT_SIZE)); apple_x = ((r * DOT_SIZE));
...@@ -422,7 +422,7 @@ apple_y = ((r * DOT_SIZE)); ...@@ -422,7 +422,7 @@ apple_y = ((r * DOT_SIZE));
``` ```
这些行设置了 apple 对象的 x 和 y 坐标。 这些行设置了`apple`对象的 x 和 y 坐标。
`onKeyDown()`方法中,我们确定按下的键。 `onKeyDown()`方法中,我们确定按下的键。
...@@ -435,7 +435,7 @@ if ((key == SWT.ARROW_LEFT) && (!right)) { ...@@ -435,7 +435,7 @@ if ((key == SWT.ARROW_LEFT) && (!right)) {
``` ```
如果按左光标键,则将 left 变量设置为 true。 在`move()`方法中使用此变量来更改蛇对象的坐标。 还要注意,当蛇向右行驶时,我们不能立即向左转。 如果按左光标键,则将`left`变量设置为`true`。 在`move()`方法中使用此变量来更改蛇对象的坐标。 还要注意,当蛇向右行驶时,我们不能立即向左转。
`Nibbles.java` `Nibbles.java`
...@@ -518,4 +518,4 @@ shell.setSize(WIDTH + borW, HEIGHT + borH); ...@@ -518,4 +518,4 @@ shell.setSize(WIDTH + borW, HEIGHT + borH);
Figure: Nibbles Figure: Nibbles
这是使用 SWT 库和 Java 编程语言编程的 Nibbles 电脑游戏。 这是使用 SWT 库和 Java 编程语言编程的贪食蛇电脑游戏。
\ No newline at end of file \ No newline at end of file
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
## Winforms ## Winforms
Windows Forms 是图形用户界面应用编程接口(API),包含在 Microsoft .NET Framework 中。 截至 2008 年 5 月 13 日,Mono 的 System.Windows.Forms 2.0 已完成 API。 简而言之,Winforms 是一个用于创建 GUI 应用的库。 Windows Forms 是图形用户界面应用编程接口(API),包含在 Microsoft .NET Framework 中。 截至 2008 年 5 月 13 日,Mono 的`System.Windows.Forms` 2.0 已完成 API。 简而言之,Winforms 是一个用于创建 GUI 应用的库。
[Tweet](https://twitter.com/share) [Tweet](https://twitter.com/share)
......
...@@ -28,7 +28,7 @@ Windows Forms 是图形用户界面应用编程接口(API),包含在 Micro ...@@ -28,7 +28,7 @@ Windows Forms 是图形用户界面应用编程接口(API),包含在 Micro
## 编译示例 ## 编译示例
我们的教程使用 C# 语言。 要编译本教程中的所有示例,我们使用`gmcs`编译器。 gmcs 编译器实现了完整的 C# 2.0 规范,包括泛型。 C# 源文件必须以.cs 扩展名结尾。 我们的教程使用 C# 语言。 要编译本教程中的所有示例,我们使用`gmcs`编译器。 `gmcs`编译器实现了完整的 C# 2.0 规范,包括泛型。 C# 源文件必须以.cs 扩展名结尾。
``` ```
$ gmcs --about $ gmcs --about
...@@ -66,21 +66,21 @@ public class Simple : Form ...@@ -66,21 +66,21 @@ public class Simple : Form
``` ```
C# 应用使用称为程序集的模块。 默认情况下,Mono C# 编译器仅引用三个程序集:mscorlib.dll,System.dll 和 System.Xml.dll。 必须使用编译器的命令行选项指定任何其他程序集。 在我们的简单示例中,我们需要 System.Windows.Forms.dll 和 System.Drawing.dll 程序集。 C# 应用使用称为程序集的模块。 默认情况下,Mono C# 编译器仅引用三个程序集:`mscorlib.dll``System.dll``System.Xml.dll`。 必须使用编译器的命令行选项指定任何其他程序集。 在我们的简单示例中,我们需要`System.Windows.Forms.dll``System.Drawing.dll`程序集。
``` ```
gmcs -r:System.Windows.Forms.dll -r:System.Drawing.dll simple.cs gmcs -r:System.Windows.Forms.dll -r:System.Drawing.dll simple.cs
``` ```
在这里,我们编译 simple.cs 源文件。 如果未指定输出文件名,则将获得名称等于源文件名的 exe 文件。 在我们的示例中,为 simple.exe 文件。 在这里,我们编译`simple.cs`源文件。 如果未指定输出文件名,则将获得名称等于源文件名的 exe 文件。 在我们的示例中,为`simple.exe`文件。
``` ```
gmcs -r:System.Windows.Forms.dll -r:System.Drawing.dll simple.cs -out:simpleexample.exe gmcs -r:System.Windows.Forms.dll -r:System.Drawing.dll simple.cs -out:simpleexample.exe
``` ```
在这里,我们指定输出文件名。 我们编译源文件并获取 simpleexample.exe 文件。 在这里,我们指定输出文件名。 我们编译源文件并获取`simpleexample.exe`文件。
## 参考 ## 参考
......
...@@ -39,7 +39,7 @@ using System.Drawing; ...@@ -39,7 +39,7 @@ using System.Drawing;
``` ```
在这里,我们使用`using`指令,该指令允许我们使用适当名称空间中的类型,而无需使用完全限定的名称。 例如,我们现在可以编写 Form 而不是 System.Windows.Forms.Form 在这里,我们使用`using`指令,该指令允许我们使用适当名称空间中的类型,而无需使用完全限定的名称。 例如,我们现在可以编写`Form`而不是`System.Windows.Forms.Form`
``` ```
public class Simple : Form public class Simple : Form
...@@ -49,7 +49,7 @@ public class Simple : Form ...@@ -49,7 +49,7 @@ public class Simple : Form
``` ```
在 Winforms 中,任何窗口或对话框都是`Form`。 该控件是一个基本容器,其目的是显示其他子控件。 我们的类 Simple 继承自表单。 这样,它本身就成为一种形式。 在 Winforms 中,任何窗口或对话框都是`Form`。 该控件是一个基本容器,其目的是显示其他子控件。 我们的类`Simple`继承自表单。 这样,它本身就成为一种形式。
``` ```
Text = "Simple"; Text = "Simple";
...@@ -57,7 +57,7 @@ Size = new Size(250, 200); ...@@ -57,7 +57,7 @@ Size = new Size(250, 200);
``` ```
`Text``Size`是表单的属性。 更改这些属性,我们将修改表单控件。 第一行在表单控件的标题栏中显示文本“ Simple”。 第二行将表单的大小设置为 250x200px `Text``Size`是表单的属性。 更改这些属性,我们将修改表单控件。 第一行在表单控件的标题栏中显示文本“`Simple`”。 第二行将表单的大小设置为`250x200px`
``` ```
CenterToScreen(); CenterToScreen();
...@@ -74,7 +74,7 @@ static public void Main() ...@@ -74,7 +74,7 @@ static public void Main()
``` ```
编译并运行后,将首先执行 Main 方法。 该代码实例化 Simple 类并运行它。 编译并运行后,将首先执行`Main`方法。 该代码实例化`Simple`类并运行它。
``` ```
$ gmcs -r:System.Windows.Forms.dll -r:System.Drawing.dll simple.cs $ gmcs -r:System.Windows.Forms.dll -r:System.Drawing.dll simple.cs
...@@ -135,7 +135,7 @@ try { ...@@ -135,7 +135,7 @@ try {
``` ```
最好将所有输入输出工作放在 try / catch 关键字之间。 web.ico 文件必须在当前工作目录中可用。 这是我们执行(./icon.exe)应用的目录。 最好将所有输入输出工作放在`try/catch`关键字之间。 `web.ico`文件必须在当前工作目录中可用。 这是我们执行(`./icon.exe`)应用的目录。
![Icon](img/8ebd92d17682215fbfc82b4e5e51ab4e.jpg) ![Icon](img/8ebd92d17682215fbfc82b4e5e51ab4e.jpg)
...@@ -212,7 +212,7 @@ button.Parent = this; ...@@ -212,7 +212,7 @@ button.Parent = this;
``` ```
注意`Button`控件的创建。 `Text`属性是按钮的标签。 `Location`属性将按钮放在 x = 30,y = 70px 坐标的表单上。 最后,`Parent`属性确定按钮所在的容器。 注意`Button`控件的创建。 `Text`属性是按钮的标签。 `Location`属性将按钮放在`x = 30``y = 70px`坐标的表单上。 最后,`Parent`属性确定按钮所在的容器。
![Tooltips](img/1384d0bc53cc8ce4de528552b995e2b0.jpg) ![Tooltips](img/1384d0bc53cc8ce4de528552b995e2b0.jpg)
......
...@@ -58,14 +58,14 @@ class MApplication { ...@@ -58,14 +58,14 @@ class MApplication {
``` ```
这是一个非常基本的代码示例,清楚地显示了`Anchor`属性的含义。 我们在表单上有两个按钮。 第一个按钮具有默认的`AnchorStyles`值,即 AnchorStyles。 AnchorStyles.Left。 第二个按钮明确设置了 AnchorStyles.Right 这是一个非常基本的代码示例,清楚地显示了`Anchor`属性的含义。 我们在表单上有两个按钮。 第一个按钮具有默认的`AnchorStyles`值,即`AnchorStyles.Left`。 第二个按钮明确设置了`AnchorStyles.Right`
``` ```
btn2.Anchor = AnchorStyles.Right; btn2.Anchor = AnchorStyles.Right;
``` ```
我们将第二个按钮的`Anchor`属性明确设置为 AnchorStyles.Right 值。 我们将第二个按钮的`Anchor`属性明确设置为`AnchorStyles.Right`值。
现在看看以下两个图像。 左边的是开始时显示的应用。 调整大小后,右侧显示相同的应用。 第一个按钮与表单的左边界和上边界保持距离。 第二个按钮与表单的右边框保持距离。 但是它在垂直方向上没有保持任何距离。 现在看看以下两个图像。 左边的是开始时显示的应用。 调整大小后,右侧显示相同的应用。 第一个按钮与表单的左边界和上边界保持距离。 第二个按钮与表单的右边框保持距离。 但是它在垂直方向上没有保持任何距离。
......
...@@ -360,7 +360,7 @@ titem1.DropDownItems.Add(subm1); ...@@ -360,7 +360,7 @@ titem1.DropDownItems.Add(subm1);
``` ```
在这里,我们创建第一个菜单项。 要将图像添加到项目,我们将`Image`属性设置为图像。 我们使用静态`FromFile()`方法从指定的文件创建一个 Image 在这里,我们创建第一个菜单项。 要将图像添加到项目,我们将`Image`属性设置为图像。 我们使用静态`FromFile()`方法从指定的文件创建一个`Image`
``` ```
titem1.DropDownItems.Add(new ToolStripSeparator()); titem1.DropDownItems.Add(new ToolStripSeparator());
......
...@@ -93,7 +93,7 @@ Figure: Label ...@@ -93,7 +93,7 @@ Figure: Label
## `CheckBox` ## `CheckBox`
`CheckBox`是具有两个状态的控件:开和关。 它是带有标签或图像的盒子。 如果选中了 CheckBox,则在方框中用勾号表示。 CheckBox 可用于在启动时显示/隐藏启动屏幕,切换工具栏的可见性等。 `CheckBox`是具有两个状态的控件:开和关。 它是带有标签或图像的盒子。 如果选中了`CheckBox`,则在方框中用勾号表示。 `CheckBox`可用于在启动时显示/隐藏启动屏幕,切换工具栏的可见性等。
`checkbox.cs` `checkbox.cs`
...@@ -270,7 +270,7 @@ pb.Image = mute; ...@@ -270,7 +270,7 @@ pb.Image = mute;
``` ```
PictureBox 控件已创建。 它用于显示图像。 开始时,它会显示静音图像。 `PictureBox`控件已创建。 它用于显示图像。 开始时,它会显示静音图像。
``` ```
void LoadImages() { void LoadImages() {
...@@ -402,7 +402,7 @@ Figure: ComboBox ...@@ -402,7 +402,7 @@ Figure: ComboBox
## `MonthCalendar` ## `MonthCalendar`
在下一个示例中,我们将显示`MonthCalendar`控件。 MonthCalendar 控件允许用户使用视觉显示选择日期。 在下一个示例中,我们将显示`MonthCalendar`控件。 `MonthCalendar`控件允许用户使用视觉显示选择日期。
`monthcalendar.cs` `monthcalendar.cs`
...@@ -528,7 +528,7 @@ text.AutoSize = true; ...@@ -528,7 +528,7 @@ text.AutoSize = true;
``` ```
`Label`控件已创建。 `AutoSize`属性可确保 Label 增长以显示文本。 `Label`控件已创建。 `AutoSize`属性可确保`Label`增长以显示文本。
``` ```
TextBox tbox = new TextBox(); TextBox tbox = new TextBox();
......
...@@ -261,7 +261,7 @@ foreach (Actress act in actresses) { ...@@ -261,7 +261,7 @@ foreach (Actress act in actresses) {
``` ```
此循环填充 listview 控件。 每行都作为`ListViewItem`类添加到列表视图。 此循环填充`ListView`控件。 每行都作为`ListViewItem`类添加到列表视图。
``` ```
lv.View = View.Details; lv.View = View.Details;
...@@ -536,14 +536,14 @@ tv.Scrollable = true; ...@@ -536,14 +536,14 @@ tv.Scrollable = true;
``` ```
我们使 treeview 控件可滚动,因为该控件显示了大量目录。 我们使`TreeView`控件可滚动,因为该控件显示了大量目录。
``` ```
ShowDirectories(tv.Nodes, HOME_DIR); ShowDirectories(tv.Nodes, HOME_DIR);
``` ```
`ShowDirectories()`方法使用指定主目录中可用的目录填充 treview 控件的节点。 `ShowDirectories()`方法使用指定主目录中可用的目录填充`TreeView`控件的节点。
``` ```
if (subDirs.Length > 0) if (subDirs.Length > 0)
...@@ -571,7 +571,7 @@ trvNode.Add(tr); ...@@ -571,7 +571,7 @@ trvNode.Add(tr);
``` ```
此代码行实际上将目录添加到 treeview 控件。 此代码行实际上将目录添加到`TreeView`控件。
``` ```
void OnExpand(object sender, EventArgs e) void OnExpand(object sender, EventArgs e)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册