Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
zetcode-zh
提交
dee4435d
Z
zetcode-zh
项目概览
OpenDocCN
/
zetcode-zh
8 个月 前同步成功
通知
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,体验更适合开发者的 AI 搜索 >>
提交
dee4435d
编写于
6月 21, 2020
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2020-06-21 15:18:20
上级
ef710199
变更
18
隐藏空白更改
内联
并排
Showing
18 changed file
with
38 addition
and
38 deletion
+38
-38
docs/gui/111.md
docs/gui/111.md
+1
-1
docs/gui/168.md
docs/gui/168.md
+1
-1
docs/gui/176.md
docs/gui/176.md
+1
-1
docs/gui/189.md
docs/gui/189.md
+1
-1
docs/gui/313.md
docs/gui/313.md
+1
-1
docs/gui/320.md
docs/gui/320.md
+1
-1
docs/gui/323.md
docs/gui/323.md
+1
-1
docs/gui/331.md
docs/gui/331.md
+1
-1
docs/gui/332.md
docs/gui/332.md
+5
-5
docs/gui/333.md
docs/gui/333.md
+3
-3
docs/gui/335.md
docs/gui/335.md
+1
-1
docs/gui/336.md
docs/gui/336.md
+12
-12
docs/gui/338.md
docs/gui/338.md
+3
-3
docs/gui/339.md
docs/gui/339.md
+2
-2
docs/gui/341.md
docs/gui/341.md
+1
-1
docs/gui/50.md
docs/gui/50.md
+1
-1
docs/gui/62.md
docs/gui/62.md
+1
-1
docs/gui/77.md
docs/gui/77.md
+1
-1
未找到文件。
docs/gui/111.md
浏览文件 @
dee4435d
...
...
@@ -535,7 +535,7 @@ control = self.GetParent().GetParent().position
```
位置文本控件显示了网格小部件的选定单元格。 它是第二个工具栏的第一个小部件。 在
`Example`
类内部,我们需要获取对文本控件的引用,该引用在
`Example`
类中定义。
`MySheet`
是笔记本的
孩子。 笔记本是
`Example`
的孩子
。 因此,通过两次调用
`GetParent()`
方法,我们设法到达了位置文本控件。
位置文本控件显示了网格小部件的选定单元格。 它是第二个工具栏的第一个小部件。 在
`Example`
类内部,我们需要获取对文本控件的引用,该引用在
`Example`
类中定义。
`MySheet`
是笔记本的
子项。 笔记本是
`Example`
的子项
。 因此,通过两次调用
`GetParent()`
方法,我们设法到达了位置文本控件。
```
py
notebook
=
wx
.
Notebook
(
self
,
style
=
wx
.
RIGHT
)
...
...
docs/gui/168.md
浏览文件 @
dee4435d
...
...
@@ -6,7 +6,7 @@
在设计应用的 GUI 时,我们决定要使用哪些小部件以及如何在应用中组织这些小部件。 为了组织小部件,我们使用专门的不可见对象,称为布局管理器。
有两种小部件:容器及其子级。 容器将
孩子
分组为合适的布局。
有两种小部件:容器及其子级。 容器将
子项
分组为合适的布局。
Tk 具有三个内置布局管理器:
`pack`
,
`grid`
和
`place`
管理器。 包几何形状管理器在垂直和水平框中组织小部件。 网格几何管理器将小部件放置在二维网格中。 最后,
`place`
几何管理器使用绝对定位将小部件放置在其容器上。
...
...
docs/gui/176.md
浏览文件 @
dee4435d
...
...
@@ -378,7 +378,7 @@ Figure: RowLayout manager
## 按钮
在最后一个示例中,我们使用
`FormLayout`
管理器创建一个示例。 该管理器使用两个对象
`FormData`
和
`FormAttachment`
控制
孩子
的位置和大小。
在最后一个示例中,我们使用
`FormLayout`
管理器创建一个示例。 该管理器使用两个对象
`FormData`
和
`FormAttachment`
控制
子项
的位置和大小。
`ButtonsEx.java`
...
...
docs/gui/189.md
浏览文件 @
dee4435d
...
...
@@ -355,7 +355,7 @@ class MApplication {
```
这是
`TreeView`
控件的非常简单的演示。 我们有一个根项目和三个
孩子
。
这是
`TreeView`
控件的非常简单的演示。 我们有一个根项目和三个
子项
。
```
TreeView tv = new TreeView();
...
...
docs/gui/313.md
浏览文件 @
dee4435d
...
...
@@ -309,7 +309,7 @@ Application.Run(IForm())
```
这是
`TreeView`
控件的非常简单的演示。 我们有一个根项目和三个
孩子
。
这是
`TreeView`
控件的非常简单的演示。 我们有一个根项目和三个
子项
。
```
tv = TreeView()
...
...
docs/gui/320.md
浏览文件 @
dee4435d
...
...
@@ -402,7 +402,7 @@ gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 3)
```
我们创建一个垂直框,使其成为顶层窗口的容器。
`gtk_vbox_new()`
函数的第一个参数称为同质参数。 如果设置为
`TRUE`
,则一个框中的所有小部件都具有相等的空间分配。 我们不希望这样,因为菜单栏仅占用窗口的一小部分。 第二个参数是
孩子
之间的空间。
我们创建一个垂直框,使其成为顶层窗口的容器。
`gtk_vbox_new()`
函数的第一个参数称为同质参数。 如果设置为
`TRUE`
,则一个框中的所有小部件都具有相等的空间分配。 我们不希望这样,因为菜单栏仅占用窗口的一小部分。 第二个参数是
子项
之间的空间。
```
menubar = gtk_menu_bar_new()
...
...
docs/gui/323.md
浏览文件 @
dee4435d
...
...
@@ -4,7 +4,7 @@
在 Jython Swing 编程教程的这一部分中,我们将介绍布局管理器。
在设计应用的 GUI 时,我们决定要使用哪些组件以及如何在应用中组织这些组件。 为了组织我们的组件,我们使用专门的不可见对象,称为布局管理器。 Swing 工具箱包含两种组件:容器和子组件。 容器将
孩子
分组为合适的布局。 要创建布局,我们使用布局管理器。
在设计应用的 GUI 时,我们决定要使用哪些组件以及如何在应用中组织这些组件。 为了组织我们的组件,我们使用专门的不可见对象,称为布局管理器。 Swing 工具箱包含两种组件:容器和子组件。 容器将
子项
分组为合适的布局。 要创建布局,我们使用布局管理器。
## 绝对定位
...
...
docs/gui/331.md
浏览文件 @
dee4435d
...
...
@@ -4,7 +4,7 @@
在 JRuby Swing 编程教程的这一部分中,我们将介绍布局管理器。
在设计应用的 GUI 时,我们决定要使用哪些组件以及如何在应用中组织这些组件。 为了组织我们的组件,我们使用专门的不可见对象,称为布局管理器。 Swing 工具箱包含两种组件。 容器和
儿童。 容器将孩子
分组为合适的布局。 要创建布局,我们使用布局管理器。
在设计应用的 GUI 时,我们决定要使用哪些组件以及如何在应用中组织这些组件。 为了组织我们的组件,我们使用专门的不可见对象,称为布局管理器。 Swing 工具箱包含两种组件。 容器和
子项。 容器将子项
分组为合适的布局。 要创建布局,我们使用布局管理器。
## 绝对定位
...
...
docs/gui/332.md
浏览文件 @
dee4435d
...
...
@@ -84,7 +84,7 @@ cb = JCheckBox.new "Show Title", true
```
`JCheckBox`
组件已创建。 构造函数的第一个参数是其文本标签。 第二个参数是一个布尔值,指示初始选择状态。 如果为
true
,则选中该复选框。
`JCheckBox`
组件已创建。 构造函数的第一个参数是其文本标签。 第二个参数是一个布尔值,指示初始选择状态。 如果为
`true`
,则选中该复选框。
```
cb.setFocusable false
...
...
@@ -201,7 +201,7 @@ Example.new
```
我们的示例在窗口中显示了歌曲的歌词。 我们可以在
`JLabel`
组件中使用 HTML 标签。 我们使用
<
br
>
标签来分隔行。
我们的示例在窗口中显示了歌曲的歌词。 我们可以在
`JLabel`
组件中使用 HTML 标签。 我们使用
`<br>`
标签来分隔行。
```
lyrics = "
<html>
It's way too late to think of
<br>
...
...
@@ -577,7 +577,7 @@ class Example < JFrame
```
该类实现
`ActionListener`
。 我们将在
Example
类的
`actionPerformed`
方法中执行一些操作。
该类实现
`ActionListener`
。 我们将在
`Example`
类的
`actionPerformed`
方法中执行一些操作。
```
redButton = JToggleButton.new "red"
...
...
@@ -585,7 +585,7 @@ redButton.addActionListener self
```
我们创建一个
`JToggleButton`
组件。 我们向按钮添加一个动作监听器。 动作监听器是
Example 类。 当我们单击 redButton 时,将调用 Example
类的
`actionPerformed`
方法。
我们创建一个
`JToggleButton`
组件。 我们向按钮添加一个动作监听器。 动作监听器是
`Example`
类。 当我们单击
`redButton`
时,将调用
`Example`
类的
`actionPerformed`
方法。
```
blueButton.setMaximumSize greenButton.getMaximumSize
...
...
@@ -714,7 +714,7 @@ Example.new
```
在我们的示例中,我们将显示
`JList`
和
`JLabel`
组件。
list
组件包含我们系统上所有可用字体系列名称的列表。 如果我们从列表中选择一项,则标签将以我们选择的字体显示。
在我们的示例中,我们将显示
`JList`
和
`JLabel`
组件。
列表
组件包含我们系统上所有可用字体系列名称的列表。 如果我们从列表中选择一项,则标签将以我们选择的字体显示。
```
ge = GraphicsEnvironment.getLocalGraphicsEnvironment
...
...
docs/gui/333.md
浏览文件 @
dee4435d
...
...
@@ -96,7 +96,7 @@ fileMenu.setMnemonic KeyEvent::VK_F
```
我们创建一个菜单对象。 菜单是包含
`JMenuItem`
的弹出窗口。 菜单位于菜单栏上。 也可以通过键盘访问菜单。 要将菜单绑定到特定键,我们使用
`setMnemonic`
方法。 在我们的情况下,可以使用
ALT + F
快捷方式打开菜单。
我们创建一个菜单对象。 菜单是包含
`JMenuItem`
的弹出窗口。 菜单位于菜单栏上。 也可以通过键盘访问菜单。 要将菜单绑定到特定键,我们使用
`setMnemonic`
方法。 在我们的情况下,可以使用
`ALT + F`
快捷方式打开菜单。
```
itemExit = JMenuItem.new "Close", icon
...
...
@@ -349,7 +349,7 @@ self.addMouseListener MouseAction.new
```
我们将鼠标监听器添加到
Example
类。 鼠标监听器是
`MouseAction`
用户定义的类,该类继承自
`MouseAdapter`
。 这是一个便利类,可实现所有五个必需的方法。 方法为空。 除了实现所有五个方法之外,我们仅实现所需的方法。
我们将鼠标监听器添加到
`Example`
类。 鼠标监听器是
`MouseAction`
用户定义的类,该类继承自
`MouseAdapter`
。 这是一个便利类,可实现所有五个必需的方法。 方法为空。 除了实现所有五个方法之外,我们仅实现所需的方法。
```
class MouseAction < MouseAdapter
...
...
@@ -359,7 +359,7 @@ class MouseAction < MouseAdapter
```
在我们的
MouseAction
类中,我们实现了
`mouseReleased`
方法。
在我们的
`MouseAction`
类中,我们实现了
`mouseReleased`
方法。
```
if e.getButton == e.button:
...
...
docs/gui/335.md
浏览文件 @
dee4435d
...
...
@@ -113,7 +113,7 @@ g.fillRect 10, 15, 90, 60
```
我们使用上面指定的颜色值填充位于
x = 10,y = 15 且宽度= 90 和高度= 60
的矩形。
我们使用上面指定的颜色值填充位于
`x = 10`
,
`y = 15`
且宽度
`= 90`
和高度
`= 60`
的矩形。
![
Colors
](
img/1ff48abf49c675059d785a4e0dd185a5.jpg
)
...
...
docs/gui/336.md
浏览文件 @
dee4435d
# JRuby Swing 中的
Nibbles
# JRuby Swing 中的
贪食蛇
> 原文: [http://zetcode.com/gui/jrubyswing/nibbles/](http://zetcode.com/gui/jrubyswing/nibbles/)
在 JRuby Swing 编程教程的这一部分中,我们将创建一个
Nibbles
游戏克隆。
在 JRuby Swing 编程教程的这一部分中,我们将创建一个
贪食蛇
游戏克隆。
Nibbles
是较旧的经典视频游戏。 它最初是在 70 年代后期创建的。 后来它被带到 PC 上。 在这个游戏中,玩家控制蛇。 目的是尽可能多地吃苹果。 蛇每次吃一个苹果,它的身体就会长大。 蛇必须避开墙壁和自己的身体。
贪食蛇
是较旧的经典视频游戏。 它最初是在 70 年代后期创建的。 后来它被带到 PC 上。 在这个游戏中,玩家控制蛇。 目的是尽可能多地吃苹果。 蛇每次吃一个苹果,它的身体就会长大。 蛇必须避开墙壁和自己的身体。
## 开发
蛇的每个关节的大小为 10px。 蛇由光标键控制。 最初,蛇具有三个关节。 游戏立即开始。 游戏结束后,我们在窗口中心显示“
Game Over
”消息。
蛇的每个关节的大小为 10px。 蛇由光标键控制。 最初,蛇具有三个关节。 游戏立即开始。 游戏结束后,我们在窗口中心显示“
`Game Over`
”消息。
```
#!/usr/local/bin/jruby
...
...
@@ -349,7 +349,7 @@ end
```
在
gameOver 方法中,我们在窗口中心显示“ Game Over
”消息。 我们也停止计时器。
在
`gameOver`
方法中,我们在窗口中心显示“
`Game Over`
”消息。 我们也停止计时器。
```
def checkApple
...
...
@@ -362,7 +362,7 @@ end
```
`checkApple`
方法检查蛇是否击中了苹果对象。 如果是这样,我们添加另一个蛇形关节并调用
`locateApple`
方法,该方法将随机放置一个新的
Apple
对象。
`checkApple`
方法检查蛇是否击中了苹果对象。 如果是这样,我们添加另一个蛇形关节并调用
`locateApple`
方法,该方法将随机放置一个新的
`Apple`
对象。
在
`move`
方法中,我们有游戏的密钥算法。 要了解它,请看一下蛇是如何运动的。 您控制蛇的头。 您可以使用光标键更改其方向。 其余关节在链上向上移动一个位置。 第二关节移动到第一个关节的位置,第三关节移动到第二个关节的位置,依此类推。
...
...
@@ -416,7 +416,7 @@ r = rand RAND_POS
```
我们得到一个从 0 到
RAND_POS-1
的随机数。
我们得到一个从 0 到
`RAND_POS-1`
的随机数。
```
@apple_x = r * DOT_SIZE
...
...
@@ -425,7 +425,7 @@ r = rand RAND_POS
```
这些行设置了
apple
对象的 x,y 坐标。
这些行设置了
`apple`
对象的 x,y 坐标。
```
def actionPerformed e
...
...
@@ -442,9 +442,9 @@ end
```
每隔
DELAY
ms,将调用
`actionPerformed`
方法。 如果我们参与了游戏,我们将调用三种构建游戏逻辑的方法。
每隔
`DELAY`
ms,将调用
`actionPerformed`
方法。 如果我们参与了游戏,我们将调用三种构建游戏逻辑的方法。
在
Board
类的
`keyPressed`
方法中,我们确定按下的键。
在
`Board`
类的
`keyPressed`
方法中,我们确定按下的键。
```
if key == KeyEvent::VK_LEFT and not @right
...
...
@@ -455,7 +455,7 @@ end
```
如果单击左光标键,则将
`@left`
变量设置为
true
。 在
`move`
方法中使用此变量来更改蛇对象的坐标。 还要注意,当蛇向右行驶时,我们不能立即向左转。
如果单击左光标键,则将
`@left`
变量设置为
`true`
。 在
`move`
方法中使用此变量来更改蛇对象的坐标。 还要注意,当蛇向右行驶时,我们不能立即向左转。
```
class Example < JFrame
...
...
@@ -489,4 +489,4 @@ end
Figure: Nibbles
这是使用 Swing 库和 JRuby 编程语言编写的 Nibbles 电脑游戏。
\ No newline at end of file
这是使用 Swing 库和 JRuby 编程语言编写的贪食蛇电脑游戏。
\ No newline at end of file
docs/gui/338.md
浏览文件 @
dee4435d
...
...
@@ -8,7 +8,7 @@
## 关于
Windows 窗体是图形用户界面应用编程接口(API),包含在 Microsoft .NET Framework 中。 截至 2008 年 5 月 13 日,Mono 的
System.Windows.Forms
2.0 已完成 API。 简而言之,Winforms 是一个用于创建 GUI 应用的库。
Windows 窗体是图形用户界面应用编程接口(API),包含在 Microsoft .NET Framework 中。 截至 2008 年 5 月 13 日,Mono 的
`System.Windows.Forms`
2.0 已完成 API。 简而言之,Winforms 是一个用于创建 GUI 应用的库。
Mono 是一个跨平台的开源.NET 开发框架。 它是.NET 兼容的工具集,其中包括 C# 编译器,Visual Basic 编译器,公共语言运行时,ADO.NET,ASP.NET 和 Winforms 库。
...
...
@@ -17,7 +17,7 @@ vbnc -r:/usr/lib/mono/2.0/System.Windows.Forms.dll quitbutton.vb
```
上面的命令显示了如何编译
quitbutton
示例。 mono VB 编译器的
`-r`
参数加载 Winforms 程序集。 这是一个动态库。 该命令显示了 Ubuntu 系统上 DLL 库的路径。
上面的命令显示了如何编译
`quitbutton`
示例。 mono VB 编译器的
`-r`
参数加载 Winforms 程序集。 这是一个动态库。 该命令显示了 Ubuntu 系统上 DLL 库的路径。
## 使窗口居中
...
...
@@ -168,7 +168,7 @@ End Try
```
最好将所有输入输出工作放在
Try / Catch 关键字之间。 web.ico 文件必须在当前工作目录中可用。 这是我们执行(./icon.exe
)应用的目录。
最好将所有输入输出工作放在
`Try/Catch`
关键字之间。
`web.ico`
文件必须在当前工作目录中可用。 这是我们执行(
`./icon.exe`
)应用的目录。
![
Icon
](
img/e381e35edd258e1377f619127699bfa1.jpg
)
...
...
docs/gui/339.md
浏览文件 @
dee4435d
...
...
@@ -15,7 +15,7 @@ Winforms 中的每个控件都可以具有以下`AnchorStyles`值之一:
*
对
*
底部
注意,控件不限于一个值。 他们可以使用
|取这些值的任何 combinatino
。 运算符。
注意,控件不限于一个值。 他们可以使用
`|`
取这些值的任何组合
。 运算符。
## 基本`Anchor`示例
...
...
@@ -75,7 +75,7 @@ End Class
```
这是一个非常基本的代码示例,清楚地显示了
`Anchor`
属性的含义。 我们在表单上有两个按钮。 第一个按钮具有默认的
`AnchorStyles`
值,即
AnchorStyles。 AnchorStyles.Left。 第二个按钮已显式设置 AnchorStyles.Right
。
这是一个非常基本的代码示例,清楚地显示了
`Anchor`
属性的含义。 我们在表单上有两个按钮。 第一个按钮具有默认的
`AnchorStyles`
值,即
`AnchorStyles.Left`
。 第二个按钮已显式设置
`AnchorStyles.Right`
。
```
btn2.Anchor = AnchorStyles.Right
...
...
docs/gui/341.md
浏览文件 @
dee4435d
...
...
@@ -400,7 +400,7 @@ End Class
```
这是
`TreeView`
控件的非常简单的演示。 我们有一个根项目和三个
孩子
。
这是
`TreeView`
控件的非常简单的演示。 我们有一个根项目和三个
子项
。
```
tv = New TreeView
...
...
docs/gui/50.md
浏览文件 @
dee4435d
...
...
@@ -6,7 +6,7 @@
在设计应用的 GUI 时,我们决定要使用哪些小部件以及如何在应用中组织这些小部件。 为了组织小部件,我们使用专门的不可见对象,称为布局管理器。
有两种小部件:容器及其子级。 容器将
孩子
分组为合适的布局。
有两种小部件:容器及其子级。 容器将
子项
分组为合适的布局。
Tkinter 具有三个内置的布局管理器:
`pack`
,
`grid`
和
`place`
管理器。
`place`
几何管理器使用绝对定位来定位小部件。
`pack`
几何管理器在水平和垂直框中组织窗口小部件。
`grid`
几何管理器将小部件放置在二维网格中。
...
...
docs/gui/62.md
浏览文件 @
dee4435d
...
...
@@ -2,7 +2,7 @@
> 原文: [http://zetcode.com/tutorials/javaswingtutorial/swinglayoutmanagement/](http://zetcode.com/tutorials/javaswingtutorial/swinglayoutmanagement/)
Java Swing 具有两种组件:容器和子组件。 容器将
孩子
分组为合适的布局。 要创建布局,我们使用布局管理器。
Java Swing 具有两种组件:容器和子组件。 容器将
子项
分组为合适的布局。 要创建布局,我们使用布局管理器。
[
Tweet
](
https://twitter.com/share
)
...
...
docs/gui/77.md
浏览文件 @
dee4435d
...
...
@@ -309,7 +309,7 @@ Figure: A row of buttons created with a HBox
## `BorderPane`
`BorderPane`
将
孩子
放在顶部,左侧,右侧,底部和中央位置。 它可以用来创建经典外观的应用布局。
`BorderPane`
将
子项
放在顶部,左侧,右侧,底部和中央位置。 它可以用来创建经典外观的应用布局。
`BorderPaneEx.java`
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录