首页 \ 问答 \ java 如何实现 获取实时股票数据

java 如何实现 获取实时股票数据

更新时间:2023-03-27 13:03

最满意答案

在JavaFX的WebView中通过JavaScript回调Java的程序,可以通过JSObject.setMember的方法来实现。该方法可以通过JavaScript向上层访问Java代码,具体请看一下示例。Java代码先建立一个新的名为“app”的JavaScript对象。该对象哦呢共有一个公共成员,及exit方法。
public class JavaApplication {  
    public void exit() {  
        Platform.exit();  
    }  
}
JSObject window = (JSObject) webEngine.executeScript("window");  
window.setMember("app", new JavaApplication());这样之后,你就可以在HTML页面内通过app对象来访问类中的方法:
Click here to exit application这就相当与一个JavaScript和Java之间的桥梁。

其他回答

什么是 javafx ?

javafx 包含了一些列图形和媒体包,允许程序员设计、创建、测试、调试、和部署富客户端应用并且保持跨的操作一致性。

javafx 应用程序

javafx 应用程序由 java api 编写,可以调用任何 java api 包。例如,可以调用 java api 访问本地操作系统,并且与服务器进行连接。

javafx 的外观可以自定义。层叠样式表(css)将应用的外观与功能分离,让程序员可以更专注于编码。美工可以简单地通过 css 来自定义应用程序的外观。

如果你有 web 设计的背景,或者你想将 ui 和后台逻辑分离,那么你还可以将 ui 放入到 fxml 标记语言中,用 java 
编写业务逻辑。如果你只想编码,那么可以将编写 ui 的工作交给 javafx scene builder。在支持 javafx 
的集成开发环境(ide)中,可以使用 javafx scene builder 来编写 fxml 标记语言。

可用性

从 javafx 2.2 以后,javafx 已经集成在 jre 7 和 jdk 7 以及以后的 java 版本中了。因为 jdk 
可以很好地运行在主流桌面系统上(windows, mac os x, and linux),因此 javafx 
也可以运行在这些主流的桌面系统上。跨兼容性,可以让 javafx 的开发者和用户得到一致的体验。

在 jdk 的页面,可以获取 javafx 例子的 zip 包。这些例子应用程序提供了很多代码来演示如何使用 javafx。

主要特性

javafx 2.2 和之后的版本都包含以下主要特性:

java api

javafx 是一个 java 包,由 java 类和 java 接口等原始的 java 代码编写而成。这些 api 在设计上可以很友好的替代为 java vm 语言,例如 jruby 或 scala。

fxml and scene builder

fxml 是基于 xml 的标记语言,用来创建 javafx ui。设计者可以直接编写 fxml 或者使用 ide 的 scence builder 来编写 fxml。

webview

web 组件可以使用 webkithtml 技术将 web 页面嵌入到 javafx 应用程序中。在 webview 中运行的 
javascript 可以调用 java api,并且 java api 也可以调用 webview 中运行的 javascript。

swing 集成

旧有的 swing 应用程序可以更行 javafx 的新特性,比如丰富的图形媒体播放功能和嵌入 web 页面的功能。

丰富的自有控件和css

javafx 提供了桌面应用程序需要用到的主要控件。并且控件的外观可以使用标准的 web css 来进行控制。

画布(canvas)api

canvas api 允许在可以包含一个作图元素的 javafx scene 直接绘制图形。

支持多点触控

基于的底层能力,javafx 支持多点触控功能。

硬件加速的图形通道

javafx 图形渲染基于 prism。如果使用了支持 prism 的显卡或 gpu,javafx 可以很快的进行平滑渲染。如果系统不支持 prism,那么默认值将会变为 java 2d。

高性能的媒体引擎

媒体通道支持 web 多媒体内容的播放,基于 gstreamer 媒体框架,提供了稳定的、低延迟的媒体播放框架。

自包含的应用程序部署模式

自包含的应用程序,可以包含所有的应用程序资源、java 运行时以及 javafx 运行时。应用程序发布后,可以在操作系统本地安装,获得操作系统一致的安装和加载体验。

相关问答

更多
  • 在JavaFX的WebView中通过JavaScript回调Java的程序,可以通过JSObject.setMember的方法来实现。该方法可以通过JavaScript向上层访问Java代码,具体请看一下示例。Java代码先建立一个新的名为“app”的JavaScript对象。该对象哦呢共有一个公共成员,及exit方法。 public class JavaApplication { public void exit() { Platform.exit(); } } JSObject window = (JS ...
  • 首先是糟糕的新事物,没有什么是“建立”来做到这一点。 这需要您添加一些代码以从Webview回传。 在我写的nativescript-webworkers插件中; 我这样做是因为我在Android上使用了onJsConfirm函数。 在iOS上,我使用userContentControllerDidReceiveScriptMessage回调进行通信。 如果你想开发自己的代码; 只需抓住我的webworkers插件的副本,你就可以看到它的方法。 现在好消息是,它似乎已经有一个名为“ nativescript ...
  • 您可以使用像myurl://函数这样的自定义URL方案来实现您的功能链接。 然后为WebView的shouldOverrideUrlLoading事件编写一个事件处理程序,在该事件中您决定如何处理该URL:或者指示web视图加载它,或者执行一些自定义操作。 @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.startsWith("myurl://")) { ...
  • 我通过其他问题找到了一个简单的解决方案。 在JavaFX中 使用 不同的类 更改标签 的文本并使用Javascript回调方法更改JavaFX标签 FXML文件包含两个Web视图和一个标签(标签只是为了显示JavaFX控件)
  • 在Connector类中定义一个字段,并使用构造函数对其进行初始化: public class Connector { private final FXMLDocumentController controller ; public Connector(FXMLDocumentController controller) { this.controller = controller ; } // ... } 然后,您可以直接在connecting()方 ...
  • 解决方案是使用“post”函数,如下所示: public void showToast(String toast) { Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show(); // WebView Web = new WebView(mContext); // mView.getSettings().setUserAgentString("Android WebView"); mVie ...
  • 正如错误消息所示,您需要在匿名类中定义该方法: loader.setControllerFactory(new Callback[Class[_],Object] { def call(c: Class[_]): Object = { // your implementation } }) As the error message says, you need to define that method in your anonymous class: loader.setControll ...
  • 你不可以做这个。 JavaFX每个JVM进程(java调用)都有一个应用程序线程,并且必须在JavaFX应用程序线程上处理WebView API调用。 请注意,在内部,WebView使用WebKit,它可能有自己的线程实现来支持像Web Workers这样的html5内容,但是当您在Java API级别编写WebView时,这些都是隐藏的。 除非您明确地编写JavaScript以使用它,否则这不会产生太大的影响。 我想如果您的NodeJS webapp针对其他浏览器进行了优化,它可能在WebView中运行良 ...
  • 您可以使用JFXPanel将JavaFX内容嵌入到Swing应用程序中。 请注意,要使其正常工作,您必须小心在AWT事件分派线程上创建和访问Swing内容,并在FX应用程序线程上创建和访问JavaFX内容,因此您需要使用SwingUtilities.invokeLater(...)仔细管理代码SwingUtilities.invokeLater(...)和Platform.runLater(...) 。 (有关详细信息,请参阅文档 。) 创建JFXPanel启动FX Application工具包(如果尚未启 ...
  • 不,您无法在WebView中显示小程序。 WebView不支持applet等插件技术。 No, you can't display an applet in a WebView. WebView does not support plugin technology such as applets.

相关文章

更多

最新问答

更多
  • 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
  • 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
  • OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
  • 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
  • codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
  • 在计算机拍照在哪里进入
  • 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
  • No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
  • 单页应用程序:页面重新加载(Single Page Application: page reload)
  • 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
  • System.StackOverflow错误(System.StackOverflow error)
  • KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
  • 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
  • android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
  • TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
  • 企业安全培训的各项内容
  • 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
  • C#类名中允许哪些字符?(What characters are allowed in C# class name?)
  • NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
  • 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
  • 将多个行和可变行移动到列(moving multiple and variable rows to columns)
  • 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
  • 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
  • Angular $资源不会改变方法(Angular $resource doesn't change method)
  • 在Angular 5中不是一个函数(is not a function in Angular 5)
  • 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
  • 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
  • 常见的python rpc和cli接口(Common python rpc and cli interface)
  • Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
  • 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)