如何在Java Swing中显示系统样式的文件选择框类似JavaFX的FileChooser外观

如何在Java Swing中显示系统样式的文件选择框类似JavaFX的FileChooser外观,第1张

完整的java代码如下:

import javaxswing;

import javaawtevent;

public class FileChooserDemo extends JFrame implements ActionListener {

// 创建一个按钮,用于打开文件选择框

private JButton openButton;

// 创建一个文件选择框对象

private JFileChooser fileChooser;

public FileChooserDemo() {

// 设置窗口标题和大小

super("文件选择框示例");

setSize(300, 200);

// 设置窗口布局为流式布局

setLayout(new FlowLayout());

// 初始化按钮,并添加动作监听器

openButton = new JButton("打开文件");

openButtonaddActionListener(this);

// 初始化文件选择框,并设置为系统样式[^1^][2]

fileChooser = new JFileChooser();

fileChoosersetFileSelectionMode(JFileChooserFILES_ONLY);

try {

UIManagersetLookAndFeel(UIManagergetSystemLookAndFeelClassName());

SwingUtilitiesupdateComponentTreeUI(fileChooser);

} catch (Exception e) {

eprintStackTrace();

}

// 将按钮添加到窗口中

add(openButton);

// 设置窗口可见和关闭 *** 作

setVisible(true);

setDefaultCloseOperation(JFrameEXIT_ON_CLOSE);

}

@Override

public void actionPerformed(ActionEvent e) {

if (egetSource() == openButton) {

// 当点击打开文件按钮时,d出文件选择框[^2^][1]

int result = fileChoosershowOpenDialog(this);

if (result == JFileChooserAPPROVE_OPTION) {

// 当用户选择了一个文件时,获取并显示文件路径

String filePath = fileChoosergetSelectedFile()getPath();

JOptionPaneshowMessageDialog(this, "你选择了:" + filePath);

}

}

}

public static void main(String[] args) {

new FileChooserDemo();

}

}

#include<stdioh> main() { char ch; do { printf("hello world Y/N:"); ch = getchar(); getchar(); if(ch == 'N'){ //如果输入N,则跳出循环,结束程序 break; } if(ch!='Y' && ch!='N'){ //如果输入不正确,给出警告并且结束此次循环 printf("Please input Y or N!\n"); continue; } } while(1); }

一,瘦客户端,富客户端简介

富客户端RIA开发可以有多种,主要的有 MS C# Silverlight, Adobe Flash/Flex,Oracle Java JavaFX,有些运行在浏览器中,有些运行在浏览器外;

瘦客户端主要是指 HMTL+JS+CSS 在浏览器中运行的系统。

二,JavaFX 环境搭建

目前很多游戏或系统还很多使用富客户端开发,这里介绍Java 的 JavaFX ,使用JavaFX开发,首先就是开发环境的搭建,JavaFX的搭建环境需要如下:

1,java JDK ,是运行java必备的环境,安装后还设置系统环境变量等,使用 J2SE 7+版,

2,Eclipse ,优秀的 Java 的集成开发环境,使用 V372 版本,

3,javaFX 插件 JavaFX Scene Builder 10,用来开发界面UI,即 fxml 文件的生成,支持随见即所得的效果,

4,javaFX 插件下载后安装到Eclipse开发环境中,如何安装具体忘了,可以参考 JavaFX 工具安装和用法介绍 >

Java不能直接运行Flash游戏。Flash是使用Adobe Flash开发的技术,而Java是使用Java语言和Java虚拟机(JVM)开发的技术。不过,您可以在Java应用程序中嵌入Flash游戏。这需要使用一些第三方库和工具来实现。

以下是在Java应用程序中嵌入Flash游戏的步骤:

1 下载并安装Swing浏览器:Swing浏览器是一个基于Java的浏览器,可以在Java应用程序中加载网页。您可以从GitHub上下载Swing浏览器,并根据文档进行安装和配置。

2 在Java应用程序中添加Swing浏览器依赖库:Swing浏览器提供了一个依赖库,您需要将其添加到您的Java项目中。

3 引入SWT组件:SWT是一个基于本机 *** 作系统GUI控件的工具包,可以帮助您在Java应用程序中嵌入Flash游戏。

4 创建一个SWT浏览器控件:使用SWT组件创建一个WebBrowser对象。

5 将WebBrowser对象添加到窗口并设置大小、位置等属性。

6 加载Flash游戏URL:调用WebBrowser对象的setUrl方法并传递Flash游戏的URL地址即可将其加载到控件中。

以上是大致的步骤,具体实现细节需要根据您的具体情况进行调整。

假设你的qq目录是在:E:\Program Files (x86)\Tencent\QQ\Bin,给button注册动作事件,如下:

buttonsetOnAction(event -> {

try {

RuntimegetRuntime()exec("E:\\Program Files (x86)\\Tencent\\QQ\\Bin\\QQexe");

} catch (IOException e) {

eprintStackTrace();

}

});

然后你点击button,就会打开qq的程序

JavaFX 有类似于CardLayout的组件, 叫Pagination; 效果图如下

Pagination效果图

但是JavaFX的强大之处, 不仅仅在于基础组件,远比是awt/swing的多, 并且可以借助动画和灵活的布局,创造出丰富的动画切换效果 比如我写了一个自定义的组件RXCarousel ,它可以像播放幻灯片一样切换或者组件(布局)

RXCarousel切换布局(组件)

RXCarousel播放幻灯片

我的JavaFX自定义组件库地址(源码和示例):RXControls8

JavaFX API详解之Window

其中Window类可理解成一个窗体,用于存放Scene,并与用户 *** 作。一般window作为窗体,都用其子类Stage和PopupWindow。

看一下Window作为窗体的顶级类包含的一些共同属性

eventDispatcher setEventDispatcher(EventDispatcher value)

focused: 焦点集中 setFocused(boolean)设置

x y width height: 位置及大小 setX(double),setY(double),setWidth(double),setHeight(double) 设置

onCloseRequest 关闭Window事件 setOnCloseRequest(EventHandler)

onHidden 隐藏事件 setOnHidden(EventHandler)

onHiding 隐藏事件,优先于OnHidden setOnHiding(EventHandler)

onShowing 显示事件 setOnShowing(EventHandler)

onShown 显示事件,在OnShowing之后 setOnShown(EventHandler)

opacity 透明 setOpacity(double) 值为0到1

scene 设置场景 setScene(Scene)

showing 是否是显示状态 isShowing()

Window的一些方法:

addEventFilter(EventType eventType, EventHandler eventFilter) 添加事件过滤

removeEventFilter(EventType eventType, EventHandler eventFilter)

addEventHandler(EventType eventType, EventHandler eventHandler) 添加事件

removeEventHandler(EventType eventType, EventHandler eventHandler)

buildEventDispatchChain(EventDispatchChain tail)

centerOnScreen() 使Window显示中间

hide() 隐藏 实际就是关闭

show() 保护类型 显示window

requestFocus() 要求焦点集中

sizeToScene() 使Window的大小匹配它Scene的大小。如果你没有设置Window大小的话,那么就是刚好匹配的(匹配不等于相等了,window始终要大Scene一些)。若果你设置了window大小,在调用该方法,则会改变window的大小以匹配Scene大小。 最好的例子是,你设置window大小,而不设置Scene大小,再调用该方法。

fireEvent(Event event) 调用指定的事件

Stage作为顶级容器,其主Stage由系统创建。额外的可由应用程序创建。

fullScreen 是否全屏,该属性类型为ReadOnly,不可绑定。 setFullScreen(boolean) 虽然是全屏 但是width,height等属性值仍不变,若在全屏的时候改变这些值,返回原来状态的时候,使用改变后的值。

iconified 是否最小化 setIconified(boolean)

resizable 设置大小是否变化 setResizable(boolean) 为true则不能拉动stage的大小

以上就是关于如何在Java Swing中显示系统样式的文件选择框类似JavaFX的FileChooser外观全部的内容,包括:如何在Java Swing中显示系统样式的文件选择框类似JavaFX的FileChooser外观、JavaFX初学,写的第一个HelloWorld程序按下Button没反应、进行javafx编程时,如何将sample.fxml文件中控件和事件程序自动添加到Controller.java中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9694969.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存