Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
zetcode-zh
提交
086cbc8b
Z
zetcode-zh
项目概览
OpenDocCN
/
zetcode-zh
大约 1 年 前同步成功
通知
2
Star
157
Fork
40
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Z
zetcode-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
086cbc8b
编写于
6月 21, 2020
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2020-06-21 11:01:30
上级
c83ebd6e
变更
10
显示空白变更内容
内联
并排
Showing
10 changed file
with
35 addition
and
35 deletion
+35
-35
docs/gui/180.md
docs/gui/180.md
+1
-1
docs/gui/181.md
docs/gui/181.md
+3
-3
docs/gui/182.md
docs/gui/182.md
+9
-9
docs/gui/183.md
docs/gui/183.md
+1
-1
docs/gui/184.md
docs/gui/184.md
+4
-4
docs/gui/185.md
docs/gui/185.md
+6
-6
docs/gui/186.md
docs/gui/186.md
+2
-2
docs/gui/187.md
docs/gui/187.md
+1
-1
docs/gui/188.md
docs/gui/188.md
+4
-4
docs/gui/189.md
docs/gui/189.md
+4
-4
未找到文件。
docs/gui/180.md
浏览文件 @
086cbc8b
...
@@ -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`
允许它。
## 目录对话框
## 目录对话框
...
...
docs/gui/181.md
浏览文件 @
086cbc8b
...
@@ -583,7 +583,7 @@ gc.setAlpha(i * 25);
...
@@ -583,7 +583,7 @@ gc.setAlpha(i * 25);
```
```
`setAlpha()`
方法设置 a
pl
ha 透明度值。
`setAlpha()`
方法设置 a
lp
ha 透明度值。
![
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`
循环中,我们进行旋转操作并绘制椭圆。
## 绘制文字
## 绘制文字
...
...
docs/gui/182.md
浏览文件 @
086cbc8b
# 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
docs/gui/183.md
浏览文件 @
086cbc8b
...
@@ -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
)
...
...
docs/gui/184.md
浏览文件 @
086cbc8b
...
@@ -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`
文件。
## 参考
## 参考
...
...
docs/gui/185.md
浏览文件 @
086cbc8b
...
@@ -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
)
...
...
docs/gui/186.md
浏览文件 @
086cbc8b
...
@@ -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`
值。
现在看看以下两个图像。 左边的是开始时显示的应用。 调整大小后,右侧显示相同的应用。 第一个按钮与表单的左边界和上边界保持距离。 第二个按钮与表单的右边框保持距离。 但是它在垂直方向上没有保持任何距离。
现在看看以下两个图像。 左边的是开始时显示的应用。 调整大小后,右侧显示相同的应用。 第一个按钮与表单的左边界和上边界保持距离。 第二个按钮与表单的右边框保持距离。 但是它在垂直方向上没有保持任何距离。
...
...
docs/gui/187.md
浏览文件 @
086cbc8b
...
@@ -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());
...
...
docs/gui/188.md
浏览文件 @
086cbc8b
...
@@ -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();
...
...
docs/gui/189.md
浏览文件 @
086cbc8b
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录