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

2020-06-21 11:01:30

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