入门
craftforJ 随 webforJ 一起提供,因此无需单独下载。本页面涵盖您的应用在 craftforJ 显示之前所需的内容,以及如何打开它。
使用 startforJ 创建的项目或从 webforJ 原型 创建的项目均已启用 craftforJ。如果您是从其中一个项目开始,请运行您的应用,直接跳到 打开 craftforJ。
要求
craftforJ 仅在以下所有条件成立时附加到应用上。如果其中一个条件不满足,则页面上不会显示任何内容。
添加依赖
如果项目中尚未添加 webforj-devtools,请将其添加到项目中:
<dependency>
<groupId>com.webforj</groupId>
<artifactId>webforj-devtools</artifactId>
<version>${webforj.version}</version>
</dependency>
调试模式和 craftforJ 标志
将以下属性添加到您的项目中。如果您有一个标准的 webforJ 应用,请在 webforj.conf 中设置这些属性。对于使用 Spring 的 webforJ 项目,请在 application.properties 中设置这些属性。
webforj.debug = true
webforj.devtools.craftforj.enabled = true
只有在这两个属性都启用时,craftforJ 才能正常工作。因此,调试模式保持打开的应用程序在生产环境中不会暴露您的源代码树。
本地浏览器和开发者许可证
从运行应用的机器上打开应用,并确保您拥有有效的开发者许可证。要从另一台机器访问 craftforJ,请将其地址添加到 hosts-allowed。
确保这些设置到位后,重新启动应用并重新加载页面。
打开 craftforJ
当 craftforJ 活动时,您的应用上方会出现一个触发按钮。单击它以打开 craftforJ,或者在应用的任何地方按 Alt + Shift + D。相同的快捷键再次关闭 craftforJ,并且您可以将触发器拖动到适合您的任意角落。
其选项卡涵盖了 组件树、路由、主题 和 助手。设置和应用信息与它们并列。
- 触发器 是打开和关闭 craftforJ 的按钮。当 craftforJ 关闭时,它会保持不妨碍视线。
- 选项卡条 沿着靠近应用的边缘运行,并在 craftforJ 显示的内容之间切换。
- 窗口菜单 包含关于 craftforJ 所在位置的所有信息,详见 Where craftforJ sits。
craftforJ 根据您所在平台的修饰符编写每个快捷方式,因此 Alt 显示为 ⌥,Ctrl 显示为 ⌘。在 craftforJ 中按 Shift + ? 可以查 看当前列表。
craftforJ 的位置
默认情况下,craftforJ 在您的应用上浮动。您可以将其拖放到页面上的任意位置,从任意边缘调整大小,当您希望独自使用应用时,将其最小化回触发器。将其拖放到页面边缘会将其停靠在那里,保持全高或全宽,并且每个边缘保持您所设置的大小。将其从边缘拖开,craftforJ 再次浮动。
craftforJ 被绘制在页面上方。您的应用不会调整大小,里面的内容不会移开,因此无论 craftforJ 位于何处,位于其下方的内容都将被隐藏。要查看下面的内容,请将 craftforJ 移动到另一个边缘或将其移出页面。

要完全不覆盖应用,请将 craftforJ 移出页面,放入自己的浏览器窗口或标签中,这适合第二台显示器。它仍然可以通过打开它的页面检查您的应用,因此请保持该页面打开。如果您导航到其他页面或关闭它,craftforJ 就没有可以检查的内容,直到您再次打开应用。
如果您使用 Chrome 的拆分视图,在 Chrome 中选择选项卡而不是窗口,此时您的应用和 craftforJ 将并排放置,并且只接受真实标签。右键单击应用的选项卡,将其添加到新的拆分视图中,然后选择 craftforJ 选项卡。
Chrome 提供并排排列,而不是 craftforJ。其他浏览器没有等效功能,因此在其他浏览器中,craftforJ 将在普通选项卡中打开,您可以切换到它。无论哪种方式,craftforJ 的功能都是相同的。
将 craftforJ 移到另一个窗口将结束仍在流式传输的回复。craftforJ 首先会提示,直到那时写下的所有内容都会保留在聊天中。
进行第一次更改
- 按 Alt + Shift + C 开始选择一个组件。
- 将鼠标悬停在应用中的某个元素上并单击它。
- 组件树选择该组件,侧边栏填充其属性。
- 更改某个属性。正在运行的应用会立即更新。
该更改仅影响您面前的应用。您的文件保持不变,直到审查该更改并应用它,详细信息请参见 Writing changes to source。

如果什么都没有出现,请通过 故障排除 进行排查。