
控件级别监听、属性级别监听。
分类处理在JavaGUI和Android中,事件通常通过实现listener的接口函数,并通过addXXXListener或者 setOnXXXListener的形式来设置接口函数来实现事件的执行。因此JavaFX的监听分为两种: 控件级别监听和属性级别监听。
可以在“按钮点击事件”中写上读取fmxl为节点对象
Parent root = FXMLLoaderload(getClass()getResource("fxml_examplefxml"));
然后把父节点放入某个new Scene(root,320,200);
然后在显示在所用的舞台stage上。
JavaFX
在2007JavaOne会议上,Sun负责软件业务的执行副总裁格林公布了JavaFX Script:一种用于编写能够在支持Java的PC和手机上运行的应用软件的更简单的脚本语言。为了解决手机的兼容性问题JavaFX Mobile是一种面向手机厂商、提高Java应用软件在不同手机间兼容性的软件包。
Java包含了一种计算机编程语言和一个平台。
Java编程语言是一种高级语言。由Sun微系统公司(Sun Macrosystem)发布,并作为一种开放的标准进行提供。
Java平台包括了Java虚拟机和Java应用程序接口(API)。
Java将原程序编译成字节码(bytecode),并通过Java虚拟机(JVM)解释字节码的方式来执行。因为这种运行方式,只要针对不同的计算机平台准备相应的Java虚拟机,就可以很方便的实现Java语言的跨平台性。因此,Java非常适合于企业网络和Internet环境,现在已成为Internet中最受欢迎、最有影响的编程语言之一。 Java有许多值得称道的优点,如简单、面向对象、分布式、解释性、可靠、安全、结构中立性、可移植性、高性能、多线程、动态性等。
Java的主要应用有如下几点:
利用浏览器中的Java虚拟机运行于客户端的Applet。
利用本地虚拟机运行的Java应用程序,通常利用Swing或SWT等来编写跨平台的GUI界面系统。
通过编写Servlet/JSP来提供网络服务,运行于网络应用程序服务器中。
利用嵌入式Java虚拟机运行于手机等移动设备的Java应用程序,使用J2ME API。
Java的产生
Java来自于Sun公司的一个叫Green的项目,其原先的目的是为家用消费电子产品开发一个分布式代码系统,这样我们可以把E-mail发给电冰箱、电视机等家用电器,对它们进行控制,和它们进行信息交流。开始,准备采用C++,但C++太复杂,安全性差,最后基于C++开发一种新的语言Oak(Java的前身),Oak是一种用于网络的精巧而安全的语言,Sun公司曾依此投标一个交互式电视项目,但结果是被SGI打败。可怜的Oak几乎无家可归,恰巧这时MarkArdreesen开发的Mosaic和Netscape启发了Oak项目组成员,他们用Java编制了HotJava浏览器,得到了Sun公司首席执行官ScottMcNealy的支持,触发了Java进军Internet。
Java的取名也有一个趣闻,有一天,几位Java成员组的会员正在讨论给这个新的语言取什么名字,当时他们正在咖啡馆喝着Java(爪哇)咖啡,有一个人灵机一动说就叫Java怎样,得到了其他人的赞赏,于是,Java这个名字就这样传开了。
Java平台根据API和使用领域,主要分为三种技术
Java SE (旧称J2SE) - Java Platform, Standard Edition, 定位在客户端,主要用于桌面应用软件的编程
Java EE (旧称J2EE) - Java Platform, Enterprise Edition, 定义在服务器端Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统
Java ME (旧称J2ME) - Java Platform, Micro Edition, 主要应用于嵌入式系统开发,如手机和PDA的编程
Java的特色
Java从1995年的暑假开始在计算机业界就受到了高度注意,特别是在Internet和多 媒体(Multimedia)相关产品类方面。Java是
是一种软件技术
是一种由美国SUN计算机公司(Sun Microsystems, Inc)所研究而成的语言
是一种为 Internet发展的计算机语言
是一种使网页(Web Page)产生生动活泼画面的语言
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
是一种语言,用以产生「小应用程序(Applet(s))」
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
是一种将安全性(Security)列为第一优先考虑的语言
是一种使用者不需花费很多时间学习的语言
是一种突破用户端机器环境和CPU结构的语言
是一种「写一次,即可在任何机器上执行(Write OnceRun Anywhere)」的语言是有史以来,第一套允 使用者将应用程序(Applications)通过Internet从远端的服务器(Remote Server)传输到本地端的
效果如图
鼠标拖动效果
参考代码如下
import javafxapplicationApplication;
import javafxsceneScene;
import javafxscenelayoutPane;
import javafxscenelayoutRegion;
import javafxstageStage;
public class TestDraggedApp extends Application {
//保存鼠标点击在组件上的位置
private double offsetX,offsetY;
@Override
public void start(Stage primaryStage) {
Pane root = new Pane();
Region region = new Region();
regionsetStyle("-fx-background-color: #75c0ff;-fx-pref-width: 100;-fx-pref-height: 50");
rootgetChildren()add(region);
primaryStagesetScene(new Scene(root, 500, 320));
primaryStagesetTitle("TestDraggedApp");
primaryStageshow();
//设置鼠标按下事件
regionsetOnMousePressed(event -> {
//记录鼠标点击在组件上的位置
offsetX = eventgetX();
offsetY = eventgetY();
});
//设置鼠标拖动事件
regionsetOnMouseDragged(event -> {
//设置新的位置
double layoutX = eventgetSceneX() - offsetX;
regionsetLayoutX(layoutX);
double layoutY = eventgetSceneY() - offsetY;
regionsetLayoutY(layoutY);
});
}
public static void main(String[] args) {
launch(args);
}
}
java浏览器开发,其实很简单, 使用JavaFX的WebView组件即可(支持html5); 也可以在swing里使用JFXPanel然后添加WebView;
效果图如下
参考代码如下(java8+win10 x64 编写,测试)
import javafxapplicationApplication;
import javafxconcurrentWorkerState;
import javafxgeometryInsets;
import javafxsceneScene;
import javafxscenecontrol;
import javafxscenelayout;
import javafxsceneweb;
import javafxstageStage;
public class WebViewTest extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
//顶部
HBox hbox=new HBox(8);
Label labeAddr=new Label("地址");
TextField tfAddr = new TextField();
tfAddrsetMinWidth(500);
tfAddrsetText(">
Button btnGo = new Button("Go转到");
Button btnGoBack=new Button("<-");
Button btnH=new Button("->");
TextField tfSerch = new TextField();
Button btnSerch= new Button("捜");
hboxgetChildren()addAll(labeAddr,tfAddr,btnGoBack,btnH,btnGo,tfSerch,btnSerch);
hboxsetPadding(new Insets(5));
//中间
WebView wv = new WebView();
WebEngine we = wvgetEngine();
wegetLoadWorker()stateProperty()addListener((ob, ov, nv) -> {
if(nv==StateSCHEDULED) {
tfAddrsetText(wegetLocation());//
}
});
//底部
Label labelBottom = new Label();
labelBottomtextProperty()bind(wegetLoadWorker()messageProperty());//底下的信息显示
BorderPane root = new BorderPane();
rootsetTop(hbox);
rootsetCenter(wv);
rootsetBottom(labelBottom);
Scene scene = new Scene(root, 900, 600);
primaryStagesetTitle("JavaFX 雪飞潇潇 web浏览器");
primaryStagesetScene(scene);
primaryStageshow();
btnGosetOnAction(e -> {
weload(tfAddrgetText()trim());
});
btnGoBacksetOnAction(e->{
weexecuteScript("historyback()");//执行JavaScript,后退
});
btnHsetOnAction(e->{
weexecuteScript("historyforward()");//执行JavaScript,前进
});
//搜索
btnSerchsetOnAction(e->{
weload(">
});
}
}
JavaFX主要用途 : C/S架构, 小游戏, 等,传统的GUI图形界面能做的, JavaFX基本都能胜任并且还对网络支持良好, 比如WebView,HTMLEditor
JavaFX 优势如下:
界面默认皮肤,美观, 更具现代化的风格, awt/swing的默认外观有点老土
组件更具丰富 日期选择器, HTML编辑组件, 网页浏览组件(WebView) 等, 比awt/swing的组件丰富多了
支持 动画,特效,3D 完成酷炫的效果, 只需要简单的代码即可实现
原生的图表组件, 原生图表组件美观,且可以陪和动画和特效, 完成动态的拉风图表效果
多媒体的支持,播放音乐和视频流畅
支持属性的绑定, 比如把圆的大小和滑块的值绑定在一起, 拉动滑块即可改变圆的大小 无需过多代码,简洁
和Web类似 JavaFX 也可以使用3层架构进行开发方便美术人员参与界面的设计
HTML------------->FXML :结构 (美术人员)
CSS--------------->CSS: 外观 (美术人员)
JavaScript-------->Controllerjava : 行为 (开发人员)
以上就是关于javafx的监听分为两种全部的内容,包括:javafx的监听分为两种、javaFX如何用Button实现跳转到一个已创建的fxml界面、什么是JavaFX等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)