「javafx教程」新手学javafx

博主:adminadmin 2022-12-22 12:24:07 71

本篇文章给大家谈谈javafx教程,以及新手学javafx对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

求高手解答,java安装教程?

一.搭建JAVA环境

1.JDK环境变量配置

双击刚刚下载的安装文件,将弹出如下图所示的欢迎对话框。会要求接受Sun公司的许可协议,单击“接受”按钮。

单击“下一步”按钮,将弹出“自定义安装”对话框,在该对话框中,可以选择安装的功能组件,这里选择默认设置。

单击“更改”按钮,将弹出更改文件夹的对话框,在该对话框中将JDK的安装路径更改为C:\Java\jdk1.7.0_03\,如下图所示,单击“确定”按钮,将返回到自定义安装对话框中。

单击“下一步”按钮,开始安装JDK。在安装过程中会弹出JRE的“目标文件夹”对话框,这里更改JRE的安装路径为C:\Java\jre7\,然后单击“下一步”按钮,安装向导会继续完成安装进程。

安装完成后,将弹出如下图所示的对话框,单击“继续”按钮,将安装JavaFX SDK。如果不想安装,可以单击“取消”按钮,取消JavaFX的安装。

在“开始”菜单的“计算机”图标上单击鼠标右键,在弹出的快捷菜单中选择“属性”命令,在弹出的“属性”对话框左侧单击“高级系统设置”超链接,将出现如左图所示的“系统属性”对话框。

单击“环境变量”按钮,将弹出“环境变量”对话框,如右图所示,单击“系统变量”栏中的“新建”按钮,创建新的系统变量。

弹出“新建系统变量”对话框,分别输入变量名“JAVA_HOME”和变量值(即JDK的安装路径),其中变量值是笔者的JDK安装路径,读者需要根据自己的计算机环境进行修改,如下图所示。单击“确定”按钮,关闭“新建系统变量”对话框。

在左图所示的“环境变量”对话框中双击Path变量对其进行修改,在原变量值最前端添加“.;%JAVA_HOME%\bin;”变量值(注意:最后的“;”不要丢掉,它用于分割不同的变量值),如右图所示。单击“确定”按钮完成环境变量的设置。

JDK安装成功之后必须确认环境配置是否正确。在Windows系统中测试JDK环境需要选择“开始”/“运行”命令(没有“运行”命令可以按Windows+R组合键;Windows8系统中按Windows+X组合键),然后在“运行”对话框中输入“cmd”并单击“确定”按钮启动控制台。在控制台中输入“javac”命令,按Enter键,将输出如下图所示的JDK的编译器信息,其中包括修改命令的语法和参数选项等信息。这说明JDK环境搭建成功。

二.Eclipse设置操作

1.Eclipse下载

打开浏览器,在地址栏中输入“”后,按Enter键开始访问Eclipse的官方网站,该网站的首页面包含了下载超链接,如下图所示。单击页面上的Downloads菜单项或者单击右侧的Download Eclipse超链接都可以进入到下载页面。

2.Eclipse多国语言包的安装教程:

(1).在浏览器的地址栏中输入,并按下Enter键,进入到如下图所示的Babel项目首页。

(2).单击页面左侧导航中的Downloads超链接或者单击页面下方的绿色箭头都可以进入到语言包的下载页面。在下载页面的Babel Language Packs标题下选择对应Eclipse版本的超链接下载语言包,Eclipse 3.7的名称是Indigo,所以单击该超链接,如下图所示,进入Eclipse 3.7的Babel语言包下载页面,在该页面中包含了对应各国语言的资源包,而每个语言的资源包又按插件与功能模块分为多个zip压缩包。

(3).在页面中找到简体中文的语言包分类,如下图所示,可以单独选择Eclipse的语言包下载,也可以下载全部语言包。例如,单独下载Eclipse的语言包,可以单击“BabelLanguagePack-eclipse-zh_3.7.0.v20111128043401.zip (87.36%)”超链接,下载后的文件名为BabelLanguagePack-eclipse-zh_3.7.0.v20111128043401.zip。

(4).首先在解压之前关闭Eclipse。

(5).在安装的Eclipse的根目录下新建一个文件夹,取名为Language,将下载的语言包解压缩到Language文件夹下(例如D:\eclipse\Language)。

注意,Language目录下有一个子目录,然后才是features、plugins目录。

(6).建立语言包的link文件,在安装的Eclipse的根目录下新建一个文件夹,取名为Links,在该文件夹中新建一个文本文件并取名为language.link,然后在language.link文件中加入一行字:path=D:\\Eclipse\\Language

即指向多国语言包的安装目录,注意路径中应该运用反斜杠,且为双写。

注意:还可以运用一下两种路径的写法:

(1)path=D:/Eclipse/Language(用斜杠)

(2)path=Language(用相对路径)

经过以上几步之后,现在可以重新启动Eclipse了,Eclipse启动时会自动查找Links目录中的所有文本文件,并将其中的path指向的插件加载到Eclipse。重新启动的Eclipse将会显示中文。

注意:由于在此之前可能启动过Eclipse,因此,有可能会出现在中文化后部分单词仍为英语的情况。此时,可以先关闭Eclipse,将Eclipse安装目录中的configuration子目录下的org.eclipse.update目录全部全部删掉,以删除它的原有的英文版记录信息,然后重启Eclipse即可。

如需将中文工作环境变回原来的英文工作环境,只需将相关语言包配置文件language.link删除即可,同时,还要将eclipse安装目录中的configuration子目录下org.eclipse.update目录全部删掉,以删除它的原有的中文版记录信息。

三.Eclipse使用

1.在Eclipse中编写程序,必须先创建Java项目。Eclipse中有很多种项目,其中Java项目用于管理和编写Java程序。

2.创建Java类文件时,自动打开Java编辑器。创建Java类文件可以通过“新建Java类”向导来完成。在Eclipse菜单栏中选择“文件”/“新建”/“类”命令,将打开“新建Java类”向导对话框。

3.编辑器总是位于Eclipse工作台的中间区域,该区域可以重叠放置多个编辑器。编辑器的类型可以不同,但它们的主要功能都是完成Java程序、XML配置等代码编写或可视化设计工作。

4.HelloJava类包含main()主方法,它是一个可以运行的主类。例如,在Eclipse中运行HelloJava程序,可以在“包资源管理器”视图中右击HelloJava文件,在弹出的菜单中选择“运行方式”/“ Java应用程序”命令。

java做一些小游戏需要学什么

Java做这些小游戏, 可以使用下面几种Java自带的图形界面框架

Awt 适合内存较小, 配置较低的嵌入式系统等,组件较少, 性能好,资源消耗低.

Swing 适合PC等, 组件较丰富, 内存占用较大, 但是跨平台性优越

JavaFX 这个是比较强大的框架了,组件比Swing更丰富,比如添加了 日期选择组件, WebView组件, 还支持3D和 动画. 并且多多媒体支持良好. 但是相关资料比Swing等少

既然学过Java Web 那么对网页编程还是有了解吧,  HTML+CSS+JS 也可以开发出小游戏,浏览器可以显示,  放入JavaFX的WebView组件也可以显示出来

推荐使用JavaFX 或者 Web ,因为这两者都很好做到了分离. JavaFX也可以分离出FXML文件,CSS文件,Java文件. 当然也可以采用最稳妥的Swing来开发,毕竟Swing的图书教程很多.

推荐书籍

Java 2D游戏编程入门  Java游戏编程原理与实践教程

JavaFX 游戏程式设计 第三版

其实游戏算法都一样, 在Swing上好了弄透彻了, 也可以轻松移植到JavaFX或者网页上

应该怎样学习JAVA?顺序是什么?

不知道Java 学习顺序的话,我提供你一条学习线路图!

按照视频学习的过程中,学习方法也是很重要的!一定要记得勤记笔记,整理程思维导图,方便后续复习方便。

第一部分:JavaSE:Java语言最基本的一套库

学习JavaEE或JavaME之前,JavaSE是必学的。

* Java开发环境搭建

* Java基础语法

* 面向对象

* 数组

* 异常

* 集合

* 线程

* IO流

* 反射机制

* 注解Annotation

* 网络编程

第二部分:数据库 【MySQL + JDBC】

* 只要学习编程,数据库是一定要学习的,是一门公共的学科。

* java、C、python、C#等程序员都需要学习数据库。

* 数据库产品很多: MySQL、Oracle、SqlServer、DB2......

* 我们动力节点数据库课程包括:MySQL + Oracle

* Oracle:银行、政府使用oracle的较多。

* MySQL:互联网公司、一般企业使用MySQL较多。

* Oracle我们是提供视频的。课堂上不讲。

* 我们课堂上讲MySQL。

* Java语言链接数据库:JDBC

第三部分:WEB前端

* 系统结构:B/S【Browser/Server】 C/S【Client/Server】

* WEB是网站的意思。WEB前端是:网站当中的页面。

* WEB前端程序是运行在浏览器当中的。

* HTML5 + CSS3 + JavaScript(JS)

* WEB前端也有很多框架:

- jQuery

- Bootstrap

- Vue

- NodeJS

- AugularJS

- RectJS

- LayUI

- EasyUI

.....

第四部分:JavaWEB

* Servlet

* JSP

* AJAX(是JavaScript的一部分语法,专门做页面局部刷新)

第五部分:JavaWEB项目

* 做一个B/S结构的项目,将WEB前端和JavaWEB内容做一个整合练习。

* 其实到这里为止,所有的系统都可以做了。但是用的技术很Low。没有用框架。

初学了一段时间Java。想做一个应用程序,程序只需要播放一个本地视频,MP4格式,求教怎么做

使用javafx的Media,MediaPlayer,MediaView。代码如下:

import java.io.File;

import javafx.application.Application;

import javafx.beans.binding.Bindings;

import javafx.beans.property.ReadOnlyProperty;

import javafx.beans.value.ObservableValue;

import javafx.event.ActionEvent;

import javafx.geometry.Pos;

import javafx.scene.Scene;

import javafx.scene.control.Button;

import javafx.scene.control.Menu;

import javafx.scene.control.MenuBar;

import javafx.scene.control.MenuItem;

import javafx.scene.control.Slider;

import javafx.scene.image.Image;

import javafx.scene.image.ImageView;

import javafx.scene.layout.BorderPane;

import javafx.scene.layout.HBox;

import javafx.scene.layout.Pane;

import javafx.scene.layout.VBox;

import javafx.scene.media.Media;

import javafx.scene.media.MediaPlayer;

import javafx.scene.media.MediaPlayer.Status;

import javafx.scene.media.MediaView;

import javafx.stage.FileChooser;

import javafx.stage.FileChooser.ExtensionFilter;

import javafx.stage.Stage;

import javafx.util.Duration;

public class App extends Application {

private MediaView mediaView;

private Slider processSlider;

private static final Object AUTO = new Object(), MANUAL = new Object();

public static void main(String[] args) {

launch(args);

}

@Override

public void start(Stage primaryStage) throws Exception {

primaryStage.setTitle("javafx视频播放器");

        

        BorderPane root = new BorderPane();

        // 菜单栏

        initMenu(root);

        // 视频播放控件

        mediaView = initMediaView(root);

        // 视频功能控件

        initMediaControllView(root);

        

        primaryStage.setScene(new Scene(root, 600, 400));

        primaryStage.setOnCloseRequest(event - System.exit(0));

        primaryStage.show();

}

private MenuBar initMenu(final BorderPane parent) {

        Menu menu = new Menu("菜单");

        MenuItem item = new MenuItem("打开");

        item.setOnAction(event - {

         FileChooser chooser = new FileChooser();

         chooser.setTitle("选择视频文件");

         chooser.getExtensionFilters().add(new ExtensionFilter("视频文件", "*.mp4", "*.flv"));

         File file = chooser.showOpenDialog(parent.getScene().getWindow());

         if (file != null) {

         MediaPlayer player = mediaView.getMediaPlayer();

         // 关闭当前的player

         if (player != null) {

         player.stop();

         player.dispose();

         }

         processSlider.setValue(0);

         // 创建一个新的player并自动播放

         player = new MediaPlayer(new Media(file.toURI().toString()));

         player.currentTimeProperty().addListener(this::mediaProcessChanged);

         player.setAutoPlay(true);

         mediaView.setMediaPlayer(player);

         }

        });

        menu.getItems().add(item);

        

        item = new MenuItem("退出");

        item.setOnAction(event - parent.getScene().getWindow().hide());

        menu.getItems().add(item);

        

        MenuBar menuBar = new MenuBar(menu);

        parent.setTop(menuBar);

        return menuBar;

}

private MediaView initMediaView(final BorderPane parent) {

        MediaView view = new MediaView();

        Pane pane = new Pane(view);

        parent.setCenter(pane);

        // 视频宽高可随着窗口变化而自动缩放

        view.fitWidthProperty().bind(Bindings.selectDouble(view.parentProperty(), "width"));

        view.fitHeightProperty().bind(Bindings.selectDouble(view.parentProperty(), "height"));

        view.setPreserveRatio(true);

        

return view;

}

private void initMediaControllView(final BorderPane parent) {

VBox bottom = new VBox(10);

bottom.setAlignment(Pos.CENTER);

parent.setBottom(bottom);

Slider slider = new Slider(0, 100, 0);

slider.valueProperty().addListener(this::processSliderChanged);

// slider.setOnMouseClicked(this::processSliderClicked);

bottom.getChildren().add(slider);

processSlider = slider;

HBox hbox = new HBox(10);

bottom.getChildren().add(hbox);

hbox.setAlignment(Pos.CENTER);

Button btn = new Button(null, new ImageView(loadImage("pause.png")));

btn.setOnAction(this::pauseOrPlay);

hbox.getChildren().add(btn);

btn = new Button(null, new ImageView(loadImage("stop.png")));

btn.setOnAction(this::stopPlay);

hbox.getChildren().add(btn);

}

private static Image loadImage(String resPath) {

return new Image(Thread.currentThread().getContextClassLoader().getResourceAsStream(resPath));

}

private void pauseOrPlay(ActionEvent event) {

MediaPlayer player = mediaView.getMediaPlayer();

if (player == null) {

return;

}

Status status = player.getStatus();

if (status == Status.READY || status == Status.PAUSED) {

player.play();

((Button) event.getTarget()).setGraphic(new ImageView(loadImage("pause.png")));

} else if (status == Status.PLAYING) {

player.pause();

((Button) event.getTarget()).setGraphic(new ImageView(loadImage("play.png")));

}

}

private void stopPlay(ActionEvent event) {

MediaPlayer player = mediaView.getMediaPlayer();

if (player == null) {

return;

}

player.stop();

}

// private void processSliderClicked(MouseEvent event) {

// Slider slider = (Slider) event.getSource();

// if (mediaView.getMediaPlayer() != null) {

// Duration d = mediaView.getMediaPlayer().getTotalDuration().multiply(slider.getValue() / slider.getMax());

// mediaView.getMediaPlayer().seek(d);

// }

// }

private void processSliderChanged(ObservableValue? extends Number observable, Number oldValue, Number newValue) {

Slider slider = (Slider) ((ReadOnlyProperty? extends Number) observable).getBean();

if (slider.getUserData() == AUTO) { // 进度条是自动改变的,因此不用设置播放器

slider.setUserData(null);

return;

}

if (mediaView.getMediaPlayer() != null) {

slider.setUserData(MANUAL);

Duration d = mediaView.getMediaPlayer().getTotalDuration().multiply(newValue.doubleValue() / slider.getMax());

mediaView.getMediaPlayer().seek(d);

}

}

private void mediaProcessChanged(ObservableValue? extends Duration observable, Duration oldValue, Duration newValue) {

if (processSlider.getUserData() == MANUAL) { // 手动点击进度条

processSlider.setUserData(null);

return;

}

MediaPlayer player = (MediaPlayer) ((ReadOnlyProperty? extends Duration) observable).getBean();

processSlider.setUserData(AUTO);

processSlider.setValue(newValue.toMillis() / player.getTotalDuration().toMillis() * 100);

}

}

有没有了解javafx的,貌似javafx有很大改革,更《javafx本质论》里面写的完全不一样。求javafx2.2的资料。

javafx本质论 针对旧版的1.x, 已经被oracle宣布生命终结淘汰

1.x独立在Java SE之外,用一种类似js的FXscript语言。为的是模仿flash

现在2.x版完全改进,废弃了FxScript,开发转用java语言。更重要的是javafx将用于逐渐取代swing和swt作为主要界面框架。可以说相当于windows的.net的WPF用于取代winforms

关于javafx教程和新手学javafx的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-22,除非注明,否则均为首码项目网原创文章,转载请注明出处。