提交 4e9d85ff 编写于 作者: W wizardforcel

2020-06-22 11:39:56

上级 8090f419
......@@ -453,7 +453,7 @@ $ dmcs datagridview.cs -r:System.Data.dll -r:System.Drawing.dll
```
要编译该示例,我们必须包含其他 DLL。 用于 SQLite 数据供应器,Winforms,工程图和数据的 DLL。
要编译该示例,我们必须包含其他 DLL。 用于 SQLite 数据供应器,Winforms,图和数据的 DLL。
![DataGridView](img/7f8cb15b7e635b83fc1c6158b71e7769.jpg)
......
......@@ -69,7 +69,7 @@ Visual Studio Code 是一种轻量级,功能强大的现代源代码编辑器
它包括对调试,嵌入式 Git 控制,语法突出显示,智能代码完成,代码段和代码重构的支持。
## 资料来源
## 数据来源
以下资源用于创建本教程:
......
......@@ -66,7 +66,7 @@ This is Visual Basic
要运行示例,请单击 `Ctrl + F5`
## 资料来源
## 数据来源
以下三个资源用于创建本教程:
......
......@@ -16,7 +16,7 @@
## 开发
使用 Swing 绘画 API 绘制四聚体。 我们使用`java.util.Timer`创建游戏周期。 形状以正方形为单位移动(而不是逐个像素移动)。 从数学上讲,游戏中的棋盘是一个简单的数字列表。
使用 Swing 绘画 API 绘制四方块。 我们使用`java.util.Timer`创建游戏周期。 形状以正方形为单位移动(而不是逐个像素移动)。 从数学上讲,游戏中的棋盘是一个简单的数字列表。
游戏启动后立即开始。 我们可以通过按`p`键暂停游戏。 空格键将把俄罗斯方块放在底部。 `d`键将片段向下一行。 (它可以用来加快下降速度。)游戏以恒定速度运行,没有实现加速。 分数是我们已删除的行数。
......
......@@ -4,7 +4,7 @@
在 Java 2D 编程教程的这一部分中,我们将讨论变换。
仿射变换由零个或多个线性变换(旋转,缩放或剪切)和平移(移位)组成。 几个线性变换可以组合成一个矩阵。 旋转是使刚体绕固定点移动的变换。 缩放是一种放大或缩小对象的变换。 比例因子在所有方向上都是相同的。 平移是使每个点在指定方向上移动恒定距离的变换。 剪切是一种使对象垂直于给定轴移动的变换,该值在轴的一侧比另一侧更大。 资料来源:(wikipedia.org,freedictionary.com)
仿射变换由零个或多个线性变换(旋转,缩放或剪切)和平移(移位)组成。 几个线性变换可以组合成一个矩阵。 旋转是使刚体绕固定点移动的变换。 缩放是一种放大或缩小对象的变换。 比例因子在所有方向上都是相同的。 平移是使每个点在指定方向上移动恒定距离的变换。 剪切是一种使对象垂直于给定轴移动的变换,该值在轴的一侧比另一侧更大。 数据来源:(wikipedia.org,freedictionary.com)
`AffineTransform`是 Java 2D 中用于执行仿射变换的类。
......
......@@ -21,7 +21,7 @@
游戏背后的一些想法。
* 我们使用计时器类创建游戏周期
* 绘制四个形状
* 绘制四方块
* 形状以正方形为单位移动(不是逐个像素移动)
* 从数学上讲,棋盘是简单的数字列表
......
......@@ -6,7 +6,7 @@
仿射变换由零个或多个线性变换(旋转,缩放或剪切)和平移(移位)组成。 几个线性变换可以组合成一个矩阵。 旋转是使刚体绕固定点移动的变换。 缩放比例是一种放大或缩小对象的变换。 比例因子在所有方向上都是相同的。 变换是一种变换,可以使每个点在指定方向上移动恒定的距离。 剪切是一种将对象垂直于给定轴移动的变换,该值在轴的一侧比另一侧更大。
资料来源:(wikipedia.org,freedictionary.com)
数据来源:(wikipedia.org,freedictionary.com)
## 平移
......
......@@ -46,6 +46,6 @@ Cairo 支持各种后端。 后端是用于显示创建的图形的输出设备
模式代表在表面上绘制时的光源。 在 PyCairo 中,图案是您可以读取的东西,用作绘制操作的源或蒙版。 图案可以是实心的,基于表面的或渐变的。
## 资料来源
## 数据来源
为了创建本教程,我们使用了以下材料。 [Apple Cocoa 制图指南](https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaDrawingGuide/Introduction/Introduction.html)[PyCairo 参考](http://cairographics.org/documentation/pycairo/2/index.html)[Cairo 文档](http://cairographics.org/documentation/)
\ No newline at end of file
......@@ -6,7 +6,7 @@
仿射变换由零个或多个线性变换(旋转,缩放或剪切)和平移(移位)组成。 几个线性变换可以组合成一个矩阵。 旋转是使刚体绕固定点移动的变换。 缩放比例是一种放大或缩小对象的变换。 比例因子在所有方向上都是相同的。 平移是一种变换,可以使每个点在指定方向上移动恒定的距离。 剪切是一种将对象垂直于给定轴移动的变换,该值在轴的一侧比另一侧更大。
资料来源:(wikipedia.org,freedictionary.com)
数据来源:(wikipedia.org,freedictionary.com)
## 平移
......
......@@ -303,8 +303,8 @@ fileMenu.AppendMenu(wx.ID_ANY, 'I&mport', imp)
有树形菜单项。
* 普通项目
* 检查项目
* 广播项目
* 复选项目
* 单选项目
在下面的示例中,我们将演示复选菜单项。 复选菜单项在菜单中由刻度线直观地表示。
......
......@@ -119,10 +119,10 @@ self.mincol.SetPosition((20, 20))
使用`flag`参数,您可以进一步在`wx.BoxSizer`中配置小部件的行为。 我们可以控制小部件之间的边界。 我们在小部件之间添加一些像素间距。 为了应用边框,我们需要定义要使用边框的边。 我们可以将它们与`|`运算符结合使用; 例如`wx.LEFT | wx.BOTTOM`。 我们可以在这些标志之间进行选择:
*
*
* 底部
* 顶部
* `wx.LEFT`
* `wx.RIGHT`
* `wx.TOP`
* `wx.BOTTOM`
* `wx.ALL`
通过`setSizer()`方法将大小调整器设置为面板小部件。
......@@ -190,13 +190,13 @@ vbox.Add(midPan, wx.ID_ANY, wx.EXPAND | wx.ALL, 20)
如果我们使用`wx.EXPAND`标志,则我们的窗口小部件将使用分配给它的所有空间。 最后,我们还可以定义小部件的对齐方式。 我们使用以下标志来实现:
* wx.ALIGN_LEFT
* wx.ALIGN_RIGHT
* wx.ALIGN_TOP
* wx.ALIGN_BOTTOM
* wx.ALIGN_CENTER_VERTICAL
* wx.ALIGN_CENTER_HORIZONTAL
* wx.ALIGN_CENTER
* `wx.ALIGN_LEFT`
* `wx.ALIGN_RIGHT`
* `wx.ALIGN_TOP`
* `wx.ALIGN_BOTTOM`
* `wx.ALIGN_CENTER_VERTICAL`
* `wx.ALIGN_CENTER_HORIZONTAL`
* `wx.ALIGN_CENTER`
![Border around a panel](img/9d3b1be5e9604c27a153b74813bbef91.jpg)
......
......@@ -805,9 +805,9 @@ def OnKillFocus(self, e):
当我们按下键盘上的一个键时,会生成一个`wx.KeyEvent`。 此事件发送到当前具有焦点的窗口小部件。 共有三种不同的密钥处理器:
* wx.EVT_KEY_DOWN
* wx.EVT_KEY_UP
* wx.EVT_CHAR
* `wx.EVT_KEY_DOWN`
* `wx.EVT_KEY_UP`
* `wx.EVT_CHAR`
常见的请求是在按下 `Esc` 键时关闭应用。
......
......@@ -690,12 +690,12 @@ Mixins 是进一步增强`wx.ListCtrl`功能的类。 它们位于`wx.lib.mixins
有六个 mixin:
* wx.ColumnSorterMixin
* wx.ListCtrlAutoWidthMixin
* wx.ListCtrlSelectionManagerMix
* wx.TextEditMixin
* wx.CheckListCtrlMixin
* wx.ListRowHighlighter
* `wx.ColumnSorterMixin`
* `wx.ListCtrlAutoWidthMixin`
* `wx.ListCtrlSelectionManagerMix`
* `wx.TextEditMixin`
* `wx.CheckListCtrlMixin`
* `wx.ListRowHighlighter`
`wx.ColumnSorterMixin`是一个混合器,可以对报表视图中的列进行排序。 `wx.ListCtrlAutoWidthMixin`类自动将最后一列的大小调整为`wx.ListCtrl`的末尾。 默认情况下,最后一列不占用剩余空间。 请参阅前面的示例。 `wx.ListCtrlSelectionManagerMix`定义了平台无关的选择策略。 `wx.TextEditMixin`可以编辑文本。 `wx.CheckListCtrlMixin`向每行添加一个复选框。 这样我们可以控制行。 我们可以将每一行设置为选中或取消选中。 `wx.ListRowHighlighter`处理`wx.ListCtrl`中交替行的自动背景突出显示。
......
......@@ -9,7 +9,7 @@
在拖放操作中,我们将一些数据从数据源拖动到数据目标。 所以我们必须有:
* 一些数据
* 资料来源
* 数据来源
* 数据目标
在 wxPython 中,我们有两个预定义的数据目标:`wx.TextDropTarget``wx.FileDropTarget`
......
......@@ -14,12 +14,12 @@ wxPython 是旨在创建应用的工具包。 还有其他一些旨在创建计
## 开发
我们的俄罗斯方块游戏没有图像,我们使用 wxPython 中提供的绘图 API 绘制四聚体。 每个计算机游戏的背后都有一个数学模型。 俄罗斯方块也是如此。
我们的俄罗斯方块游戏没有图像,我们使用 wxPython 中提供的绘图 API 绘制四方块。 每个计算机游戏的背后都有一个数学模型。 俄罗斯方块也是如此。
游戏背后的一些想法:
* 我们使用`wx.Timer`创建游戏周期
* 绘制四个形状
* 绘制四方块
* 形状以正方形为单位移动(不是逐个像素移动)
* 从数学上讲,棋盘是简单的数字列表
......
......@@ -88,7 +88,7 @@ Glib version: 2.40.2
这是`version`程序的输出。
## 资料来源
## 数据来源
* [gtk.org](http://www.gtk.org)
* [gtkforums.com](http://www.gtkforums.com)
......
......@@ -17,7 +17,7 @@
* [小部件](widgets/)
* [小部件 II](widgets2/)
* [拖放](dragdrop/)
* [工程](drawing/)
* [](drawing/)
* [自定义小部件](customwidgets/)
* [俄罗斯方块游戏](thetetrisgame/)
......
......@@ -25,7 +25,7 @@ PyQt4 是旨在创建应用的工具包。 还有其他一些旨在创建计算
游戏背后的一些想法:
* 我们使用`QtCore.QBasicTimer()`创建游戏周期。
* 绘制四聚体
* 绘制四方块
* 形状以正方形为单位移动(而不是逐个像素移动)。
* 从数学上讲,棋盘是一个简单的数字列表。
......
......@@ -12,7 +12,7 @@ Qt 是一个跨平台的应用开发框架。 使用 Qt 开发的一些知名应
## 下载并解压缩
我们转到 [download.qt.io/official_releases/qt/](http://download.qt.io/official_releases/qt/) 页面。 (由于下载链接过去经常更改,因此您可能需要用 Google 搜索当前链接。)我们选择最新的 Qt 4.x 来源。 在创建本教程时,最新的资料是 Qt 4.8.7。 接下来,我们将从源代码安装 Qt。
我们转到 [download.qt.io/official_releases/qt/](http://download.qt.io/official_releases/qt/) 页面。 (由于下载链接过去经常更改,因此您可能需要用 Google 搜索当前链接。)我们选择最新的 Qt 4.x 来源。 在创建本教程时,最新的数据是 Qt 4.8.7。 接下来,我们将从源代码安装 Qt。
```cpp
$ ls qt-everywhere-opensource-src-4.8.7.tar.gz
......@@ -48,8 +48,8 @@ $ cd qt-everywhere-opensource-src-4.8.7/
我们以经典方式安装库。 在 Unix 系统上,软件的安装分为三个步骤。
* 组态
* 建造
* 配置
* 构建
* 安装
```cpp
......
......@@ -17,7 +17,7 @@
* [小部件](widgets/)
* [小部件 II](widgets2/)
* [拖放](dragdrop/)
* [工程](drawing/)
* [](drawing/)
* [自定义小部件](customwidgets/)
* [俄罗斯方块游戏](thetetrisgame/)
......
......@@ -23,7 +23,7 @@ PySide 是旨在创建应用的工具包。 还有其他一些旨在创建计算
游戏背后的一些想法:
* 我们使用`QtCore.QBasicTimer()`创建游戏周期。
* 绘制四聚体
* 绘制四方块
* 形状以正方形为单位移动(而不是逐个像素移动)。
* 从数学上讲,棋盘是一个简单的数字列表。
......
......@@ -13,7 +13,7 @@
* [小部件](widgets/)
* [菜单和工具栏](menustoolbars/)
* [对话框](dialogs/)
* [工程](drawing/)
* [](drawing/)
* [贪食蛇](nibbles/)
......
......@@ -23,21 +23,21 @@ $ sudo pip3 install pyqt5
PyQt5 的类分为几个模块,包括以下模块:
* QtCore
* QtGui
* Qt 小部件
* Qt 多媒体
* Qt 蓝牙
* QtNetwork
* Qt 定位
* 恩吉尼奥
* QtWebSockets
* QtWebKit
* QtWebKitWidgets
* QtXml
* QtSvg
* QtSql
* QtTest
* `QtCore`
* `QtGui`
* `QtWidgets`
* `QtMultimedia`
* `QtBluetooth`
* `QtNetwork`
* `QtPositioning`
* Enginio
* `QtWebSockets`
* `QtWebKit`
* `QtWebKitWidgets`
* `QtXml`
* `QtSvg`
* `QtSql`
* `QtTest`
`QtCore`模块包含核心的非 GUI 功能。 该模块用于处理时间,文件和目录,各种数据类型,流,URL,mime 类型,线程或进程。 `QtGui`包含用于窗口系统集成,事件处理,2D 图形,基本图像,字体和文本的类。 `QtWidgets`模块包含的类提供了一组 UI 元素,以创建经典的桌面样式用户界面。 `QtMultimedia`包含用于处理多媒体内容的类和用于访问相机和收音机功能的 API。
......
......@@ -49,7 +49,7 @@ $ pwd
在 JDeveloper 中创建新项目时,需要将`gtk-4.0.jar`添加到项目库中。 从这一点来看,运行应用很简单。
## 资料来源
## 数据来源
* [java-gnome.sourceforge.net](http://java-gnome.sourceforge.net)
* [wikipedia.org](http://wikipedia.org)
......
......@@ -8,15 +8,15 @@
* [简介](introduction/)
* [主要功能](main/)
* [系统功能](system/)
* [`main`函数](main/)
* [系统函数](system/)
* [字符串](strings/)
* [日期&时间](datetime/)
* [窗口](window/)
* [用户界面](firststeps/)的第一步
* [用户界面的第一步](firststeps/)
* [菜单](menus/)
* [对话框](dialogs/)
* [制我](controls/)
* [件 I](controls/)
* [控件 II](controlsII/)
* [控件 III](controlsIII/)
* [高级控件](advancedcontrols/)
......
......@@ -36,7 +36,7 @@ $ gmcs -pkg:gtk-sharp-2.0 -r:/usr/lib/mono/2.0/Mono.Cairo.dll application.cs
上一行编译了一个也使用 Cario 库的 GTK# 应用。
## 资料来源
## 数据来源
* [go-mono.com](http://www.go-mono.com)
* [wikipedia.org](http://wwww.wikipedia.org)
......
......@@ -28,7 +28,7 @@ PyGTK 由几个模块组成。
Gnome 和 XFce 桌面环境已使用 GTK+ 库创建。 SWT 和 wxWidgets 是使用 GTK+ 的众所周知的编程框架。 使用 GTK+ 的著名软件应用包括 Firefox 或 Inkscape。
## 资料来源
## 数据来源
* [pygtk.org](http://www.pygtk.org)
* [wikipedia.org](http://wwww.wikipedia.org)
\ No newline at end of file
......@@ -16,7 +16,7 @@ Windows API 可以分为几个区域:
* 用户界面
* 多媒体
* Windows 外壳
* 联网
* 联网
基本服务提供对 Windows 上基本资源的访问。 这些包括文件系统,设备,进程,线程,注册表或错误处理。安全区域提供功能,接口,对象和其他编程元素,用于认证,授权,加密和其他与安全相关的任务。图形子系统提供了将图形内容输出到监视器,打印机和其他输出设备的功能。用户界面提供创建窗口和控件的功能。多媒体组件提供了用于处理视频,声音和输入设备的工具。 Windows Shell 界面的功能允许应用访问操作系统外壳提供的功能。网络服务提供对 Windows OS 网络功能的访问。
......
......@@ -25,7 +25,7 @@ PyQt5 是旨在创建应用的工具包。 还有其他一些旨在创建计算
游戏背后的一些想法:
* 我们使用`QtCore.QBasicTimer()`创建游戏周期。
* 绘制四聚体
* 绘制四方块
* 形状以正方形为单位移动(而不是逐个像素移动)。
* 从数学上讲,棋盘是一个简单的数字列表。
......
......@@ -12,12 +12,12 @@
## 开发
我们的俄罗斯方块游戏没有图像,我们使用 Winforms 库中可用的绘图 API 绘制四聚体。 每个计算机游戏的背后都有一个数学模型。 在俄罗斯方块中也是如此。
我们的俄罗斯方块游戏没有图像,我们使用 Winforms 库中可用的绘图 API 绘制四方块。 每个计算机游戏的背后都有一个数学模型。 在俄罗斯方块中也是如此。
游戏背后的一些想法。
* 我们使用`Timer`创建游戏周期
* 绘制四个形状
* 绘制四方块
* 形状以正方形为单位移动(不是逐个像素移动)
* 从数学上讲,棋盘是简单的数字列表
......
......@@ -20,8 +20,8 @@
* [小部件 II](widgets2/)
* [绘图](painting/)
* [自定义小部件](customwidget/)
* [蛇游戏](snake/)
* [突破游戏](breakoutgame/)
* [贪食蛇游戏](snake/)
* [打砖块游戏](breakoutgame/)
## Qt
......
......@@ -12,7 +12,7 @@ Qt 是一个跨平台的应用开发框架。 使用 Qt 开发的一些知名应
## 下载并解压缩
我们转到 [download.qt.io/official_releases/qt/](http://download.qt.io/official_releases/qt/) 页面。 (由于下载链接过去经常更改,因此您可能需要用 Google 搜索当前链接。)我们选择最新的 Qt 5.x 来源。 在创建本教程时,最新的资料是 Qt 5.5.1。 接下来,我们将从源代码安装 Qt。
我们转到 [download.qt.io/official_releases/qt/](http://download.qt.io/official_releases/qt/) 页面。 (由于下载链接过去经常更改,因此您可能需要用 Google 搜索当前链接。)我们选择最新的 Qt 5.x 来源。 在创建本教程时,最新的数据是 Qt 5.5.1。 接下来,我们将从源代码安装 Qt。
```cpp
$ ls qt-everywhere-opensource-src-5.5.1.tar.gz
......@@ -50,8 +50,8 @@ $ cd qt-everywhere-opensource-src-5.5.1/
我们以经典方式安装库。 在 Unix 系统上,软件的安装分为三个步骤。
* 组态
* 建造
* 配置
* 构建
* 安装
```cpp
......
......@@ -13,7 +13,7 @@
* [小部件](widgets/)
* [菜单和工具栏](menustoolbars/)
* [对话框](dialogs/)
* [工程](drawing/)
* [](drawing/)
* [贪食蛇](snake/)
......
......@@ -459,7 +459,7 @@ Free virtual memory: 8796052586496
这是程序的示例输出。
## 已知资料
## 已知数据
从 Windows Vista 开始,使用新系统来标识 Windows 中的重要目录。 它被称为已知文件夹。 已知文件夹使用一组 GUID(全局唯一标识符)值来引用重要文件夹。
......
......@@ -11,10 +11,10 @@ Swing 库是 Sun Microsystems 发行的官方 Java GUI 工具箱。 它用于使
Swing 工具包是:
* 平台无关
* 可定制
* 可扩展
* 可配置
* 轻巧
* 可定制
* 可扩展
* 可配置
* 轻巧
Swing 是一个高级 GUI 工具箱。 它具有丰富的小部件集。 从基本的小部件(例如按钮,标签,滚动条)到高级的小部件(例如树和表格)。 Swing 本身是用 Java 编写的。
......
......@@ -10,15 +10,15 @@
我们将使用以下组件:
* `JMenuBar`-实现菜单栏。
* `JMenu` —实现一个菜单,一个包含`JMenuItems`的弹出窗口,当用户在`JMenuBar`上选择一个项目时显示。
* `JMenuItem`-在菜单中实现一个项目。 用户选择它来执行操作。
* `JSeparator`-提供用于实现分隔线的通用组件。
* `JCheckBoxMenuItem` ­-实现可以选择或取消选择的菜单。
* `JRadioButtonMenuItem` ­-实现单选按钮菜单项,用于相互排斥的选择。
* `ButtonGroup` ­-为一组按钮创建一个多重排除范围。
* `JPopupMenu` ­-实现一个弹出菜单,一个弹出的小窗口并显示一系列选项。
* `JToolBar`-实现工具栏,该工具栏对于显示常用的`Actions`或控件很有用。
* `JMenuBar` - 实现菜单栏。
* `JMenu` 实现一个菜单,一个包含`JMenuItems`的弹出窗口,当用户在`JMenuBar`上选择一个项目时显示。
* `JMenuItem` - 在菜单中实现一个项目。 用户选择它来执行操作。
* `JSeparator` - 提供用于实现分隔线的通用组件。
* `JCheckBoxMenuItem` ­- 实现可以选择或取消选择的菜单。
* `JRadioButtonMenuItem` ­- 实现单选按钮菜单项,用于相互排斥的选择。
* `ButtonGroup` ­- 为一组按钮创建一个多重排除范围。
* `JPopupMenu` ­- 实现一个弹出菜单,一个弹出的小窗口并显示一系列选项。
* `JToolBar`- 实现工具栏,该工具栏对于显示常用的`Actions`或控件很有用。
## Swing `JMenuBar`
......
......@@ -625,7 +625,7 @@ BoxLayout(Container target, int axis)
框布局管理器通常与`Box`类一起使用。 此类创建一些不可见的组件,这些组件会影响最终布局。
*
*
* 支撑
* 刚性区域
......
......@@ -133,10 +133,10 @@ errBtn.addActionListener(event -> JOptionPane.showMessageDialog(pnl,
要创建消息对话框,我们调用`JOptionPane`类的静态`showMessageDialog()`方法。 我们提供对话框的父项,消息文本,标题和消息类型。 消息类型是以下常量之一:
* 错误信息
* 警告信息
* QUESTION_MESSAGE
* INFORMATION_MESSAGE
* `ERROR_MESSAGE`
* `WARNING_MESSAGE`
* `QUESTION_MESSAGE`
* `INFORMATION_MESSAGE`
显示的图标取决于此常数。
......
......@@ -26,9 +26,9 @@ Swing 的绘图系统能够渲染向量图形,图像和轮廓基于字体的
* 线
* 折线
* 多边形
*
* 圆圈
* 椭圆
* 花键
* 样条
## Swing 绘制点
......
......@@ -21,7 +21,7 @@
游戏背后的一些想法。
* 我们使用`Timer`类创建游戏周期
* 绘制四个形状
* 绘制四方块
* 形状以正方形为单位移动(不是逐个像素移动)
* 从数学上讲,棋盘是简单的数字列表
......
......@@ -8,14 +8,14 @@ JavaFX 教程的这一部分涵盖了节点的布局管理。 我们提到了以
JavaFX 具有以下内置布局窗格:
* `FlowPane` –在环绕在窗格边界上的流中布置其子项。
* `HBox` –将其内容节点水平排列在一行中。
* `VBox` –将其内容节点垂直排列在单个列中。
* `AnchorPane` –将节点锚定到窗格的顶部,底部,左侧或中心。
* `BorderPane` –将其内容节点布置在顶部,底部,右侧,左侧或中央区域。
* `StackPane` –将其内容节点放置在从后到前的单个堆栈中。
* `TilePane` –将其内容节点放置在大小统​​一的布局单元或图块中。
* `GridPane` –将其内容节点放置在行和列的网格中。
* `FlowPane` 在环绕在窗格边界上的流中布置其子项。
* `HBox` 将其内容节点水平排列在一行中。
* `VBox` 将其内容节点垂直排列在单个列中。
* `AnchorPane` 将节点锚定到窗格的顶部,底部,左侧或中心。
* `BorderPane` 将其内容节点布置在顶部,底部,右侧,左侧或中央区域。
* `StackPane` 将其内容节点放置在从后到前的单个堆栈中。
* `TilePane` 将其内容节点放置在大小统​​一的布局单元或图块中。
* `GridPane` 将其内容节点放置在行和列的网格中。
为了创建更复杂的布局,可以在 JavaFX 应用中嵌套不同的容器。 除了`GridPane`之外,内置的布局管理器是非常基本的,不适用于更复杂的应用。 更复杂的布局应使用`GridPane`或第三方`MigPane`
......
......@@ -19,7 +19,7 @@ wxWidgets 是一个用于创建应用的工具包。 还有其他一些旨在创
游戏背后的一些想法。
* 我们使用`wxTimer`创建游戏周期。
* 绘制四聚体
* 绘制四方块
* 形状以正方形为单位移动(而不是逐个像素移动)。
* 从数学上讲,棋盘是一个简单的数字列表。
......
......@@ -215,7 +215,7 @@ This is simple Java example.
我们使用`java`工具运行一个包含一个文件的简单应用。 这对于学习非常方便。
## 资料来源
## 数据来源
以下资源用于创建本教程:
......
......@@ -16,7 +16,7 @@ Java Log4j 教程定义了日志记录,介绍了 Log4j 库,并在几个代
* 信息收集
* 剖析
* 稽核
* 产生统计资料
* 产生统计数据
记录不仅限于识别软件开发中的错误。 它还可用于检测安全事件,监视策略违规,在出现问题时提供信息,查找应用瓶颈或生成使用情况数据。
......
......@@ -20,7 +20,7 @@
* [选取器](pickers/)
* [菜单](menus/)
* [对话框](dialogs/)
* [工程](drawing/)
* [](drawing/)
......
......@@ -6,7 +6,7 @@
## 目标
本教程的目标是使您开始使用 Tcl 编程语言。 本教程涵盖了 Tcl 语言的核心,即变量,列表,数组,控件结构和其他核心功能。 这不是该语言的完整介绍。 这是一种快速的入门资料。 该教程是在 Ubuntu Linux 上创建的。
本教程的目标是使您开始使用 Tcl 编程语言。 本教程涵盖了 Tcl 语言的核心,即变量,列表,数组,控件结构和其他核心功能。 这不是该语言的完整介绍。 这是一种快速的入门数据。 该教程是在 Ubuntu Linux 上创建的。
## Tcl
......@@ -121,7 +121,7 @@ This is Tcl tutorial
我们使用`chmod`命令使脚本可执行并执行。
## 资料来源
## 数据来源
以下资源用于创建本教程:
......
......@@ -141,7 +141,7 @@ $ cat source.c
```
碰巧我们复制了一些资料,包括行号。 我们的任务是从文本中删除数字。
碰巧我们复制了一些数据,包括行号。 我们的任务是从文本中删除数字。
```sh
$ awk '{print substr($0, 4)}' source.c
......
......@@ -14,7 +14,7 @@ PHP Monolog 教程展示了如何使用 Monolog 在 PHP 中进行日志记录。
* 信息收集
* 故障排除
* 产生统计资料
* 产生统计数据
* 稽核
* 剖析
......
......@@ -1458,7 +1458,7 @@ This is a sample output of the script.
您可能也对以下相关教程感兴趣: [PHP PDO 教程](/php/pdo/)[PHP 教程](/lang/php/)
## 资料来源
## 数据来源
* [PHP 文件系统函数](http://php.net/manual/en/ref.filesystem.php)
......
......@@ -87,7 +87,7 @@ This is Ruby
我们使用`chmod`命令使脚本可执行并执行。
## 资料来源
## 数据来源
以下资源用于创建本教程:
......
......@@ -21,7 +21,7 @@ $ wget http://repo.spring.io/release/org/springframework/boot/spring-boot-cli/1.
```
我们从 Spring 资料库下载带有`wget`的 CLI 工具。
我们从 Spring 数据库下载带有`wget`的 CLI 工具。
```java
$ unzip spring-boot-cli-1.5.7.RELEASE-bin.zip
......
......@@ -221,6 +221,6 @@ $ mvn -q -Dspring.profiles.active=dev exec:java
我们在命令行上设置了配置文件的情况下运行应用
在本教程中,我们为 Spring 应用创建了开发和生产资料
在本教程中,我们为 Spring 应用创建了开发和生产数据
您可能也对这些相关教程感兴趣: [Spring `@Bean`注释教程](/spring/bean/)[Spring 单例范围 bean](/spring/singletonscope/)[Spring `@ComponentScan`教程](/spring/componentscan/)[Spring 注入列表 XML 教程](/spring/injectlistxml/)[Spring `BeanDefinitionBuilder`教程](/spring/beandefinitionbuilder/)[Spring HikariCP 教程](/articles/springhikaricp/)[Java 教程](/lang/java/)
\ No newline at end of file
......@@ -10,7 +10,7 @@ Symfony 是一组可重用的 PHP 组件和一个用于 Web 项目的 PHP 框架
## CSRF
跨站点请求伪造(CSRF)是一种攻击,其中恶意用户试图使合法用户在不知情的情况下提交他们不打算提交的数据。 CSRF 攻击专门针对状态更改请求,而不是数据盗窃。 成功的 CSRF 攻击可以迫使用户执行状态更改请求,例如转移资金或更改其个人资料详细信息。
跨站点请求伪造(CSRF)是一种攻击,其中恶意用户试图使合法用户在不知情的情况下提交他们不打算提交的数据。 CSRF 攻击专门针对状态更改请求,而不是数据盗窃。 成功的 CSRF 攻击可以迫使用户执行状态更改请求,例如转移资金或更改其个人数据详细信息。
CSRF 保护的工作原理是在表单中添加一个隐藏字段,该字段包含仅应用和用户知道的值(令牌)。 这样可以确保用户(而非其他实体)正在提交给定的数据。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册