假设你的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的程序
一,瘦客户端,富客户端简介
富客户端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 工具安装和用法介绍 >
总体来说Swing更稳定,资料更丰富, JavaFX更强大:
一:JavaFX设计思路比较好, 界面和控制逻辑分开, 类似于网页,方便程序员和美术一起协作 也方便修改
FXML文件类似于html ,里面放的是 控件和布局
css 文件 就几乎完全一样了, 里面存放的样式 ,用于修饰 控件的外观 比如换肤功能,只需要切换一下css文件即可
Controllerjava文件, 类似于JavaScript ,主要用于行为的控制, 比如点击按钮后的响应等
二:JavaFX组件更丰富 比如DatePicker,TreeTableView,Pagination,HTMLEditor,ProgressIndicator 等等特别是WebView 支持html5
三: JavaFX 可以很简单的实现3D效果, 动画, 特效等,
四: JavaFX 支持属性的绑定, 可以更方便的把事件和界面联系在一起,比如 滑块的值,和正方形的边长进行绑定,这样拉动滑块,就可以自动改变正方形的变长, 非常的简洁
五: JavaFX 有原生图表,并且比较美观
六: JavaFX 对多媒体提供了支持, 播放音乐,视频 也是很简单的
当然JavaFX 也还是存在一些问题的,
Swing资料非常丰富, 而JavaFX资料相对较少 Swing可以使用纯Java开发, JavaFX 还需要了解下css , xml 等,学习成本稍高
JavaFX的可视化开发工具SceneBuilder ,个人觉得还不太稳定
JavaFX的异常处理机制不太完美,很多时候抛出的异常不能准确定位, debug需要耗费一些时间
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的大小
按照你的要求编写的红绿灯程序,你看看吧,比较简单。
完整的程序如下:
import javaawt;
import javaawtevent;
import javaxswing;
import javaawtGraphics;
public class TrafficLight extends JFrame{
JRadioButton jrbYellow,jrbGreen,jrbRed;
int flag=0;
jpNewPanel jpNewPanel;
public static void main(String[] args){
TrafficLight frame=new TrafficLight();
framesetSize(500,200);
framesetLocationRelativeTo(null);
framesetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
framesetTitle("TrafficLight");
framesetVisible(true);
}
public TrafficLight(){
jpNewPanel=new jpNewPanel();
add(jpNewPanel,BorderLayoutCENTER);
JPanel jpRadioButtons=new JPanel();
jpRadioButtonssetLayout(new GridLayout(1,3));
jpRadioButtonsadd(jrbYellow=new JRadioButton("Yellow"));
jpRadioButtonsadd(jrbGreen=new JRadioButton("Green"));
jpRadioButtonsadd(jrbRed=new JRadioButton("Red"));
add(jpRadioButtons,BorderLayoutSOUTH);
ButtonGroup group=new ButtonGroup();
groupadd(jrbYellow);
groupadd(jrbGreen);
groupadd(jrbRed);
jrbYellowaddActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
flag=2;
jpNewPanelrepaint();
}
});
jrbGreenaddActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
flag=1;
jpNewPanelrepaint();
}
});
jrbRedaddActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
flag=3;
jpNewPanelrepaint();
}
});
}
class jpNewPanel extends JPanel{
protected void paintComponent(Graphics g){
superpaintComponent(g);
gdrawRect(0,0,40,100);
gdrawOval(10,10,20,20);
gdrawOval(10,40,20,20);
gdrawOval(10,70,20,20);
if(flag==1){
gsetColor(ColorGREEN);
gfillOval(10, 70, 20, 20);
}
else if(flag==2){
gsetColor(ColorYELLOW);
gfillOval(10, 40, 20, 20);
}
else if(flag==3){
gsetColor(ColorRED);
gfillOval(10, 10, 20, 20);
}
}
}
}
以上就是关于javafx编程如何启动另一个程序,比如说我可以通过点击一个button来打开QQ.exe,全部的内容,包括:javafx编程如何启动另一个程序,比如说我可以通过点击一个button来打开QQ.exe,、进行javafx编程时,如何将sample.fxml文件中控件和事件程序自动添加到Controller.java中、各位,javafx和swing哪个最界面更加强大等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)