Java选择加入org_向 Java 应用程序添加文件选择器

本教程指导如何使用javax.swing.JFileChooser组件在Java应用程序中添加文件选择器。通过NetBeans GUI构建器创建一个简单的Java应用,允许用户选择并加载.txt文件到文本区域。
摘要由CSDN通过智能技术生成

向 Java 应用程序添加文件选择器

撰稿人:Petr Dvorak(2009 年 12 月),维护人:Alyona Stashkova

本教程介绍了如何使用 javax.swing.JFileChooser 组件向 Java 应用程序中添加文件选择器。可以手动编写所有代码,但使用 NetBeans GUI 构建器是明智的选择,它可以减轻工作量。在此练习中,将创建一个小的 Java 应用程序,用于将 .txt 文件加载到文本区域中。

目录

c502b78ed887acf3dae3cb9ac7b0344e.png

要学完本教程,您需要具备以下软件和资源。

软件或资源

要求的版本

版本 7.0 或更高版本

版本 6、7 或 8

创建应用程序

首先创建一个新的 Java 应用程序:

从主菜单中,选择 "File"(文件)> "New Project"(新建项目)。选择 "Java" 类别和 "Java Application"(Java 应用程序)项目类型。单击 "Next"(下一步)。

键入 JFileChooserDemo 作为项目名称,并指定项目位置。

取消选中 "Create Main Class"(创建主类)复选框。

newproj-small.png

单击 "Finish"(完成)。

创建应用程序窗体

在本部分中,将创建 JFrame 容器,并向其中添加几个组件。

要创建 JFrame 窗体,请执行以下操作:

右键单击 "Source Packages"(源包)节点,然后选择 "New"(新建)> "Other"(其他)。选择 "Swing GUI Forms"(Swing GUI 窗体)类别和 "JFrameForm" 文件类型。单击 "Next"(下一步)。

键入 JFileChooserDemo 作为类名。

键入 jfilechooserdemo.resources 作为包。

newjframeform-small.png

单击 "Finish"(完成)。

在 "Properties"(属性)窗口中,输入 Demo application 作为 "Title"(标题)属性,然后按 Enter 键进行确认。

将组件添加到 JFrame 窗体中:

在 "Palette"(组件面板)中,打开 "Swing Menus"(Swing 菜单)类别,选择 "Menu Bar"(菜单栏)组件,然后将其拖至 JFrame 的左上角。

注:如果未显示 "Palette"(组件面板),请从主菜单中选择 "Window"(窗口)> "Palette"(组件面板)。

menubaradded-small.png

右键单击 "Menu Bar"(菜单栏)组件的 "Edit"(编辑)项,然后在上下文菜单中选择 "Delete"(删除)。

要添加菜单项,以便从正在运行的应用程序打开文件选择器,请在 "Palette"(组件面板)的 "Swing Menus"(Swing 菜单)类别中,选择新的菜单项 (JMenuItem1),然后将其拖放至 "Menu Bar"(菜单栏)的 "File"(文件)项。

menuitemadded-small.png

注:请确保先选择 "Menu Bar"(菜单栏),然后再将其他菜单项拖至此处,以便将后者添加到 "Menu Bar"(菜单栏)中。

在 "Design"(设计)视图中右键单击 jMenuItem1,然后从上下文菜单中选择 "Change Variable Name"(更改变量名称)。将项重命名为 Open,然后单击 "OK"(确定)。

确保 jMenuItem1 在 "Design"(设计)视图中仍处于选中状态。按空格键编缉组件的文本。将文本更改为 Open,然后按 Enter 键进行确认。

为 "Open" 菜单项指定操作处理程序。右键单击菜单项,然后从上下文菜单中选择 "Events"(事件)> "Action"(操作)> "action Performed"(执行的操作)。GUI 构建器自动切换至 "Source"(源)视图,并构建名为 OpenActionPerformed() 的新事件处理程序方法。"Navigator"(导航器)窗口应如下所示:

openactionperformednavigator.png

要添加菜单项,以便从正在创建的应用程序中退出文件选择器,并切换回 "Design"(设计)模式,请在 "Palette"(组件面板)的 "Swing Menus"(Swing 菜单)类别中,选择菜单项 (JMenuItem1),然后将其拖至 "Menu Bar"(菜单栏)中 "Open" 菜单项的下方。请注意橙色的突出显示,表示要放置 JMenuItem1 的位置。

highlighting-small.png

在 "Design"(设计)视图中右键单击 jMenuItem1,然后从上下文菜单中选择 "Change Variable Name"(更改变量名称)。将项重命名为 Exit,然后单击 "OK"(确定)。

确保 jMenuItem1 在 "Design"(设计)视图中仍处于选中状态。按空格键编缉组件的文本。将文本更改为 Exit,然后按 Enter 键进行确认。

为 "Exit" 菜单项指定操作处理程序。右键单击菜单项,然后从上下文菜单中选择 "Events"(事件)> "Action"(操作)> "action Performed"(执行的操作)。GUI 构建器自动切换至 "Source"(源)视图,并将构建名为 ExitActionPerformed() 的新事件处理程序方法。ExitActionPerformed 节点显示在 "Navigator"(导航器)窗口中 OpenActionPerformed() 节点的下方。

要使 "Exit" 菜单项正常工作,需要将以下源添加到 ExitActionPerformed() 方法的主体中:

System.exit(0);

切换回 "Design"(设计)模式。从 "Palette"(组件面板)的 "Swing Controls"(Swing 控件)类别中,将文本区域 (JTextArea) 拖入窗体中,如下图所示。

textareadded-small.png

调整已添加组件的大小,以便为文件选择器稍后显示的文本留出空间。将变量重命名为 textarea。此窗体应该类似于下面的屏幕快照:

jfilechooserdemoview_final-small.png

您已设置了一个简单的 Java 应用程序作为本教程的基础。接下来,将添加实际的文件选择器。

添加文件选择器

选择 "Window"(窗口)> "Navigating"(导航)> "Navigator"(导航器)以打开 "Navigator"(导航器)窗口(如果该窗口尚未打开)。

在 "Navigator"(导航器)中,右键单击 Other Components(其他组件)节点。从上下文菜单中选择 "Add From Palette"(从组件面板上添加)> "Swing Windows"(Swing 窗口)> "File Chooser"(文件选择器)

除了 Add From Palette(从组件面板上添加)上下文菜单之外,还可以从 "Palette"(组件面板)的 "Swing Window"(Swing 窗口)将 JFileChooser 组件拖放至 GUI 构建器的空白区域。结果是一样的,但操作上有一些困难,因为 JFileChooser 的预览非常大,并且可能会不小心将窗口插入到错误的面板。

查看导航器,确认 JFileChooser 已添加到窗体中。

右键单击 JFileChooser 节点,并将变量重命名为 fileChooser。

navigator_jframe.png

您已添加了文件选择器。接下来,您要调整文件选择器以显示所需的标题,添加定制文件过滤器,然后将文件选择器集成到应用程序中。

配置文件选择器

实现 "Open" 操作

在 "Navigator"(导航器)窗口中单击选择 JFileChooser,然后在 "Properties"(属性)对话框中编辑其属性。将 dialogTitle 属性更改为 This is my open dialog,按 Enter 键,然后关闭 "Properties"(属性)对话框。

单击 GUI 构建器中的 "Source"(源)按钮,以切换至 "Source"(源)模式。要将文件选择器集成到应用程序中,请将以下代码片段粘贴到现有的 OpenActionPerformed() 方法中。

private void OpenActionPerformed(java.awt.event.ActionEvent evt) {

int returnVal = fileChooser.showOpenDialog(this);

if (returnVal == JFileChooser.APPROVE_OPTION) {

File file = fileChooser.getSelectedFile();

try {

// What to do with the file, e.g. display it in a TextArea

textarea.read( new FileReader( file.getAbsolutePath() ), null );

} catch (IOException ex) {

System.out.println("problem accessing file"+file.getAbsolutePath());

}

} else {

System.out.println("File access cancelled by user.");

}

}

注:删除代码片段中与源文件中现有的第一行和最后一行重复的行。

如果编辑器报告了代码中有错误,则右键单击代码中的任意位置,然后选择 "Fix Imports"(修复导入)或按 Ctrl+Shift+I 键。在 "Fix All Imports"(修复所有导入)对话框中,接受默认值以更新导入的语句,然后单击 "OK"(确定)。

正如您所看到的,调用 FileChooser 的 getSelectedFile() 方法来确认用户所单击的文件,以便您可以对其进行操作。本示例读取文件内容,并将其显示在文本区域中。

实现文件过滤器

现在,您添加了使文件选择器只显示 *.txt 文件的定制文件过滤器。

切换至 "Design"(设计)模式,然后在 "Navigator"(导航器)窗口中选择 fileChooser。

在 "Properties"(属性)窗口中,单击 fileFilter 属性旁边的省略号 ("...") 按钮。

在 "File Filter"(文件过滤器)对话框的组合框中,选择 "Custom Code"(定制代码)。

combobox-small.png

在文本字段中键入 new MyCustomFilter()。单击 "OK"(确定)。

要使定制代码正常工作,需要编写内部(或外部)MyCustomFilter 类,以扩展 FileFilter 类。复制以下代码片段,并将其粘贴到类的源代码中 import 语句的下方,以创建实现过滤器的内部类。

class MyCustomFilter extends javax.swing.filechooser.FileFilter {

@Override

public boolean accept(File file) {

// Allow only directories, or files with ".txt" extension

return file.isDirectory() || file.getAbsolutePath().endsWith(".txt");

}

@Override

public String getDescription() {

// This description will be displayed in the dialog,

// hard-coded = ugly, should be done via I18N

return "Text documents (*.txt)";

}

}

注:要了解如何实现更智能的、可切换的文件过滤器,请参见 addChoosableFileFilter 方法。

运行应用程序

右键单击 "JFileChooserDemo" 项目,然后选择 "Run"(运行),以启动样例项目。

在 "Run Project"(运行项目)对话框中,选择 jfilechooserdemo.resources.JFileChooserDemo 主类,然后单击 "OK"(确定)。

run.png

在正运行的 Demo 应用程序中,从 "File"(文件)菜单中选择 "Open"(打开),以触发相应操作。该结果应该与此类似:

result_jfilechooserdemo-small.png

要关闭该应用程序,请在 "File"(文件)菜单中选择 "Exit"(退出)。

查看 GUI 组件面板中的其他有用 Swing 窗口和对话框,如 "ColorChooser"(颜色选择器)或 "OptionPane"(选项窗格)。

后续步骤

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果你想在 macOS 上使用 Java 实现应用程序开机自启动,你需要做以下步骤: 1. 首先,你需要确保你的计算机上已经安装了 Java 环境,并且你已经编写好了你要自动启动的 Java 程序。 2. 然后,你需要打开 macOS 的「用户与群组」设置,选择「登录项」标签。 3. 在「登录项」标签中,你可以看到「自动启动程序」列表,点击「+」号按钮,选择你要自动启动的 Java 程序的执行文件。 4. 最后,你需要将你的 Java 程序加入「自动启动程序」列表中,这样它就会在你的计算机开机时自动启动。 注意:如果你的 Java 程序是由可执行的 JAR 文件生成的,你可能需要在执行文件前面加上 "java -jar" 命令,才能让系统正确地启动你的程序。 ### 回答2: 在macOS中,我们可以使用Java编写一个应用程序,并实现开机自启动的功能。下面是使用Java实现应用程序开机自启动的步骤: 步骤1:创建一个Java应用程序。可以使用Java开发工具,如Eclipse或IntelliJ IDEA,创建一个新的Java项目。在项目中编写我们的应用程序代码。 步骤2:创建一个启动脚本。在macOS中,我们可以使用shell脚本来启动我们的Java应用程序。创建一个文本文件,将以下内容复制粘贴到文件中: ``` #!/bin/sh java -jar /path/to/your/java/application.jar ``` 将`/path/to/your/java/application.jar`替换为你的Java应用程序的路径。 步骤3:将启动脚本添加到用户的登录项中。打开“系统偏好设置” -> “用户与群组” -> “登录项”,将启动脚本拖放到列表中。 步骤4:设置脚本的可执行权限。在终端中,使用以下命令修改脚本的权限: ``` chmod +x /path/to/your/startup/script.sh ``` 将`/path/to/your/startup/script.sh`替换为你的启动脚本的路径。 现在,当你的macOS启动时,你的Java应用程序将自动启动。 需要注意的是,以上步骤仅适用于当前登录的用户。如果你希望所有用户都能够启动应用程序,可以将启动脚本添加到“/Library/LaunchAgents”目录下。 ### 回答3: 要实现 macOS 上的应用程序开机自启动,可以使用Java编写一个小型的启动器程序来实现。 首先,需要创建一个启动器程序,它可以在系统启动时自动运行,并负责启动您的Java应用程序。这个启动器程序可以是一个独立的Java应用程序,可以在系统启动时由操作系统自动运行,或者可以将其作为系统服务运行。 为了实现启动器程序,在Java中可以使用`java.awt.Desktop`类来打开指定的应用程序。可以在启动器程序中使用以下代码来启动您的Java应用程序: ``` import java.awt.Desktop; import java.io.File; import java.io.IOException; public class Launcher { public static void main(String[] args) throws IOException { String appPath = "/Applications/YourApp.app"; // 替换为您的应用程序的路径 File appFile = new File(appPath); if (Desktop.isDesktopSupported()) { Desktop.getDesktop().open(appFile); } } } ``` 请注意,您需要将路径`/Applications/YourApp.app`替换为您的应用程序的准确路径。确保路径是指向您的应用程序的实际位置。 然后,将编译后的启动器程序与您的应用程序一起打包,并将启动器程序添加到您的macOS用户登录项中。这样,当用户登录时,启动器程序将自动运行,并启动您的Java应用程序。 要将启动器程序添加到登录项中,您可以打开“系统偏好设置”,然后选择“用户与群组”。在用户偏好设置中的“登录项”选项中,可以将启动器程序拖动到该列表中,从而实现开机自启动。 这样,在macOS启动时,启动器程序将自动运行,并启动您的Java应用程序,实现应用程序的开机自启动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值