# 文件结构

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com/zh-cn/help/idea/llms.txt).

> **TL;DR**
> 结构   工具窗口：  `视图 | Tool Windows | 结构`  或 `Alt+7` (Windows), `⌘ 7` (macOS), `⌘ 7` (IntelliJ IDEA Classic (macOS)), `⌘ 7` (macOS System Shortcuts), `Alt+7` (XWin), `Alt+7` (GNOME), `Alt+7` (KDE), `Alt+7` (Emacs), `Alt+7` (Sublime Text), `⌘ 7` (Sublime Text (macOS)), `Ctrl+Alt+F` (Visual Studio), `⌃ ⌥ F` (Visual Studio (macOS)), `Ctrl+7` (NetBeans), `Alt+7` (Eclipse), `⌘ 7` (Eclipse (macOS))
>
>
>
> The   结构   弹出窗口：  `导航 | 文件结构`  或 `Ctrl+F12` (Windows), `⌘ F12` (macOS), `⌘ F12` (IntelliJ IDEA Classic (macOS)), `⌘ ⇧ 7` (macOS System Shortcuts), `Ctrl+F12` (XWin), `Ctrl+F12` (GNOME), `Ctrl+0` (KDE), `Ctrl+F12` (Emacs), `Ctrl+R` (Sublime Text), `⌘ R` (Sublime Text (macOS)), `Alt+\` (Visual Studio), `⌥ \` (Visual Studio (macOS)), `Ctrl+F12` (NetBeans), `Ctrl+F3` (Eclipse), `⌘ O` (Eclipse (macOS))

IntelliJ IDEA 允许您在 [结构](#structure-tool-window) 工具窗口和 [结构](#structure-popup) 弹出窗口中查看并导航文件结构。

结构弹出窗口:

![结构弹出窗口](https://resources.jetbrains.com/help/img/idea/2026.3/file-structure-popup.png)

结构工具窗口:

![文件中变更的高亮显示](https://resources.jetbrains.com/help/img/idea/2026.3/ij_color_status_in_structure.png)

如果您的项目在 [版本控制](version-control-integration.html)下，您可以在   结构  工具窗口和   结构  弹出窗口中看到 [VCS 状态颜色](adding-files-to-version-control.html#file_status)。 它帮助您跟踪文件中的更改。 已经修改对象的名称将变为蓝色，新增对象的名称将以绿色高亮显示。

将光标悬停在   结构   上可以在工具提示中获得有关项目的额外信息。 例如，您可以了解方法 ![方法](https://resources.jetbrains.com/help/img/idea/2026.3/app.expui.nodes.method.svg)是否为静态。

## 结构弹出窗口

弹出窗口提供的信息比 [工具窗口](#structure-tool-window) 少，但由于   [输入时缩小范围](#narrow-down-typing)   选项，弹出窗口可以更快地导航结构。

Procedure:

1. 在编辑器中打开文件并按下 `Ctrl+F12` (Windows), `⌘ F12` (macOS), `⌘ F12` (IntelliJ IDEA Classic (macOS)), `⌘ ⇧ 7` (macOS System Shortcuts), `Ctrl+F12` (XWin), `Ctrl+F12` (GNOME), `Ctrl+0` (KDE), `Ctrl+F12` (Emacs), `Ctrl+R` (Sublime Text), `⌘ R` (Sublime Text (macOS)), `Alt+\` (Visual Studio), `⌥ \` (Visual Studio (macOS)), `Ctrl+F12` (NetBeans), `Ctrl+F3` (Eclipse), `⌘ O` (Eclipse (macOS))，或者在主菜单中转到  `导航 | 文件结构` 。

2. 在弹出窗口中，开始输入您要查找的元素名称。 IDE 会在您键入时缩小搜索结果。

您还可以使用 [CamelHumps](null)，也就是说，例如，您可以键入  `dsu`  以匹配。

3. 您可以通过在弹出窗口中使用复选框进一步缩小搜索结果范围。 要更改排序，请点击 ![](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.expui.general.settings.svg) 并选择所需选项。

4. 按 `Enter` (Windows), `⏎` (macOS), `⏎` (IntelliJ IDEA Classic (macOS)), `⏎` (macOS System Shortcuts), `Enter` (XWin), `Enter` (GNOME), `Enter` (KDE), `Enter` (Emacs), `Enter` (Sublime Text), `⏎` (Sublime Text (macOS)), `Enter` (Visual Studio), `⏎` (Visual Studio (macOS)), `Enter` (NetBeans), `Enter` (Eclipse), `⏎` (Eclipse (macOS)) 或点击某项以关闭弹出窗口并在编辑器中导航到所选元素。

![结构弹出窗口](https://resources.jetbrains.com/help/img/idea/2026.3/file-structure-popup-menu.png)

继承成员
: 显示当前类继承且可从其中访问的所有方法和字段。 继承的成员显示为灰色，以便与当前类中定义的成员区分。

匿名类
: 在树形视图中显示内部匿名类。

Lambda 表达式
: 在树中显示所有 Lambda 表达式。

按字母顺序
: 按字母顺序对类中的元素进行排序。

按可见性
: 按可见性对元素排序，顺序如下：public - protected - package local - private。

输入时缩小范围
: 隐藏无关项目 [在您输入时](speed-search-in-the-tool-windows.html)。 当此选项被禁用时，IDE 会高亮显示所有与您的搜索查询匹配的项目，而不会隐藏不相关的项目。

## 结构工具窗口

Procedure:

1. 在编辑器中打开文件，或在   项目   工具窗口中选择该文件。

2. 按 `Alt+7` (Windows), `⌘ 7` (macOS), `⌘ 7` (IntelliJ IDEA Classic (macOS)), `⌘ 7` (macOS System Shortcuts), `Alt+7` (XWin), `Alt+7` (GNOME), `Alt+7` (KDE), `Alt+7` (Emacs), `Alt+7` (Sublime Text), `⌘ 7` (Sublime Text (macOS)), `Ctrl+Alt+F` (Visual Studio), `⌃ ⌥ F` (Visual Studio (macOS)), `Ctrl+7` (NetBeans), `Alt+7` (Eclipse), `⌘ 7` (Eclipse (macOS)) 或在主菜单中转到  `视图 | Tool Windows | 结构` 。

3. 在工具窗口中， [开始输入](speed-search-in-the-tool-windows.html) 您想要查找的元素名称。 您也可以使用 CamelHumps。 在输入时，IDE 将高亮显示搜索结果。

4. 您还可以使用 ![](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.expui.general.show.svg) 下的选项进一步缩小搜索结果范围或对工具窗口中的项目进行排序。

![结构工具窗口](https://resources.jetbrains.com/help/img/idea/2026.3/structure-java-tool-window.png)

### 视图选项

#### 排序

按字母顺序
: 按字母顺序对类中的元素进行排序。

按可见性
: 按其可见性排序项的顺序如下：public - protected - package local - private。

> **Tip:**
> 当这两个选项都启用时，视图中的项目将根据其可见性级别进行分组。 在每个可见性级别组内，项目按照字母顺序排序。 当两个选项都被禁用时，项目会按它们在代码中出现的顺序显示。

#### 显示

匿名类
: 在树形视图中显示内部匿名类。

字段
: 显示树中的所有字段（属性）。

继承的
: 显示当前类继承且可从其中访问的所有方法和字段。 继承的成员显示为灰色，以便与当前类中定义的成员区分。

Lambda 表达式
: 在树中显示所有 Lambda 表达式。

非公开
: 显示所有非公共类成员。
:
:
:
: 关闭此选项以隐藏所有非公共成员。

HTML 大纲
: （仅适用于 HTML 文件）显示 HTML 5 文件的大纲

DDL 语句
: （仅适用于 SQL 文件）仅显示 DDL 语句（例如，  `CREATE` 、  `ALTER` 、  `DROP`  和其他语句）。

DML 语句
: （仅适用于 SQL 文件）仅显示 DML 语句（例如，  `SELECT` 、  `INSERT` 、  `UPDATE` 、  `删除`  和其他语句）。

选择语句
: （仅适用于 SQL 文件）仅显示  `SELECT`  语句。

其他
: （仅适用于 SQL 文件）仅显示不属于前述类别的命令。

#### 组

定义类型的方法
: 将所有重写或实现特定类或接口的方法归类到与该类或接口对应的节点下。

Properties
: 在树状图中显示 getters、setters 和 fields。

按类型分组
: （仅适用于 SQL 文件）按类型对语句进行分组（例如，DDL 语句、DML 语句、  `SELECT`  语句和其他）。

### 从结构工具窗口运行代码

结构  工具窗口允许您 [运行](running-applications.html)和 [调试](debugging-code.html)您的代码。

Procedure:

* 右键点击   结构   工具窗口中的可运行方法，然后选择 ![](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.expui.gutter.run.svg)   运行 'method name'   ( `Ctrl+Shift+F10` (Windows), `⌃ ⇧ R` (macOS), `⌃ ⇧ F10` (IntelliJ IDEA Classic (macOS)), `⌃ ⇧ R` (macOS System Shortcuts), `Ctrl+Shift+F10` (XWin), `Ctrl+Shift+F10` (GNOME), `Ctrl+Shift+F10` (KDE), `Ctrl+Shift+F10` (Emacs), `Ctrl+Shift+F10` (Sublime Text), `Ctrl+Shift+F10` (Sublime Text (macOS)), `Ctrl+Alt+F5` (Visual Studio), `⌃ ⌥ F5` (Visual Studio (macOS)), `Alt+Shift+F6` (NetBeans), `Ctrl+Shift+F10` (Eclipse), `⌃ ⇧ R` (Eclipse (macOS))) 或 ![](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.expui.run.debug.svg)   调试 'method name'   ( `⌃ ⇧ D` (Windows), `⌃ ⇧ D` (macOS), `⌃ ⇧ F9` (IntelliJ IDEA Classic (macOS)), `⌃ ⇧ D` (macOS System Shortcuts), `⌃ ⇧ D` (XWin), `⌃ ⇧ D` (GNOME), `⌃ ⇧ D` (KDE), `⌃ ⇧ D` (Emacs), `⌃ ⇧ D` (Sublime Text), `⌃ ⇧ D` (Sublime Text (macOS)), `⌃ ⇧ D` (Visual Studio), `⌃ ⇧ D` (Visual Studio (macOS)), `Ctrl+Shift+F5` (NetBeans), `⌃ ⇧ D` (Eclipse), `⌃ ⇧ D` (Eclipse (macOS)))。

Procedure: 从结构运行测试

在 [结构

工具窗口](#structure-tool-window)中，可以选择类中的一个或多个测试方法来运行。 在这种情况下，IDE 还会使用这些方法创建一个临时运行配置，可以 [保存](run-debug-configuration.html#save-as-permanent)并编辑。

1. 在   结构   工具窗口中，右键点击一个或多个测试方法，然后选择 ![](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.expui.gutter.run.svg)   运行 '方法 名称'  （ `Ctrl+Shift+F10` (Windows), `⌃ ⇧ R` (macOS), `⌃ ⇧ F10` (IntelliJ IDEA Classic (macOS)), `⌃ ⇧ R` (macOS System Shortcuts), `Ctrl+Shift+F10` (XWin), `Ctrl+Shift+F10` (GNOME), `Ctrl+Shift+F10` (KDE), `Ctrl+Shift+F10` (Emacs), `Ctrl+Shift+F10` (Sublime Text), `Ctrl+Shift+F10` (Sublime Text (macOS)), `Ctrl+Alt+F5` (Visual Studio), `⌃ ⌥ F5` (Visual Studio (macOS)), `Alt+Shift+F6` (NetBeans), `Ctrl+Shift+F10` (Eclipse), `⌃ ⇧ R` (Eclipse (macOS))）。

![从工具窗口运行代码](https://resources.jetbrains.com/help/img/idea/2026.3/run-from-structure2.png)

该工具窗口允许将测试方法添加到现有运行配置（适用于 JUnit 和 TestNG 测试），其中测试作用域是通过 [模式](run-debug-configuration-junit.html#testKind)指定的。 可以添加来自多个不同类的方法来创建测试套件。

2. 在   结构   工具窗口中右键点击某个方法，然后选择：

* 如果只有一个具有 模式 测试作用域的配置，则选择 添加到临时套件：<Configuration_name> 。

* 如果有多个具有 模式 测试作用域的配置，则选择 添加到 JUnit 模式套件 (JUnit) / 添加到 Temp Suite (TestNG)。 在这种情况下，会出现一个弹出窗口，您可以在其中选择目标配置。

![从工具窗口运行代码](https://resources.jetbrains.com/help/img/idea/2026.3/run-from-structure.png)

## 组员

在 Java 中，您可以通过在源代码中对类成员进行注解来在   结构   中对其进行分组。

Procedure:

* 在编辑器中，选择一个代码片段并按 `Ctrl+Alt+T` (Windows), `⌘ ⌥ T` (macOS), `⌘ ⌥ T` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ T` (macOS System Shortcuts), `Ctrl+Alt+Shift+B` (XWin), `Ctrl+Alt+Shift+B` (GNOME), `Ctrl+Alt+Shift+B` (KDE), `Ctrl+Alt+T` (Emacs), `Ctrl+Alt+T` (Sublime Text), `⌘ ⌥ T` (Sublime Text (macOS)), `Ctrl+Alt+T` (Visual Studio), `Ctrl+Alt+T` (Visual Studio (macOS)), `Ctrl+Alt+T` (NetBeans), `Alt+Shift+Z` (Eclipse), `⌘ ⌥ Z` (Eclipse (macOS)) 或转到主菜单中的  `代码 | 代码包围` 。 选择必要的折叠区域注释，  `区域` 或  `editor-fold` 。

IntelliJ IDEA 在选中的代码周围插入注释。 有关更多信息，请参阅 [包围代码片段](surrounding-blocks-of-code-with-language-constructs.html)。

结构   工具窗口和   结构   弹出窗口使用 ![自定义区域](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.nodes.customRegion.svg) 标记这些区域。

![自定义折叠区域](https://resources.jetbrains.com/help/img/idea/2026.3/custom_region_in_structure.png)

## 在项目工具窗口中显示成员

Procedure:

* 在   项目   工具窗口 `Alt+1` (Windows), `⌘ 1` (macOS), `⌘ 1` (IntelliJ IDEA Classic (macOS)), `⌘ 1` (macOS System Shortcuts), `Alt+1` (XWin), `Alt+1` (GNOME), `Alt+1` (KDE), `Alt+1` (Emacs), `Alt+1` (Sublime Text), `⌘ 1` (Sublime Text (macOS)), `Ctrl+Alt+L` (Visual Studio), `⌘ ⌥ L` (Visual Studio (macOS)), `Ctrl+1` (NetBeans), `Alt+1` (Eclipse), `Alt+1` (Eclipse (macOS)) 中，点击页眉中的 ![选项](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.expui.general.moreVertical.svg) 并选择  `外观 | 成员` 。

![在 Project 工具窗口中显示类成员](https://resources.jetbrains.com/help/img/idea/2026.3/show_members.png)

## 逻辑结构

对于 Spring 和 Jakarta EE 类、JPA 实体以及 Liquibase 更改日志，IntelliJ IDEA 提供了对文件结构的高级洞察，显示在两个选项卡中：

* 实体 选项卡表示类方法和字段，与常规 Java 类类似，并允许您对其进行排序、分组和快速搜索。

* 逻辑 选项卡从框架的角度说明文件结构。 它帮助您理解文件在项目中的用途及其组件，并显示与应用程序其他部分的有意义的连接。 选项卡显示以下内容： * 对于 Spring 类： * 自动装配关系 * 主 Spring 应用程序类的自动配置类 * Spring 控制器的 HTTP 方法和 URL 映射的端点 * Spring 仓库的实体。 仓库方法按 `find` 、 `count` 、 `修改` 和 `删除` 操作分组。 * Spring Bean 和服务的作用域 * Spring 配置类的 Bean 和导入 * JPA、Spring Data JDBC、Spring Data MongoDB 文档和 Exposed 实体的数据库列映射（在 [持久性工具窗口](persistence-tool-window.html) 中也受支持）。 * Jakarta Bean：注入、生产者方法和字段，JAX-RS 端点映射 * Jakarta 数据仓库：实体、注入和方法 * [Liquibase 更改集](liquibase.html#liquibase-structure-tool-window)

逻辑:

![逻辑结构](https://resources.jetbrains.com/help/img/idea/2026.3/spring_class_logical_structure.png)

实体:

![逻辑结构](https://resources.jetbrains.com/help/img/idea/2026.3/spring_class_physical_structure.png)

