下面代码演示了如何使用Pivot编写最简单的Hello world程序。
package org.apache.pivot.tutorials;
import java.awt.Color;
import java.awt.Font;
import org.apache.pivot.collections.Map;
import org.apache.pivot.wtk.Application;
import org.apache.pivot.wtk.DesktopApplicationContext;
import org.apache.pivot.wtk.Display;
import org.apache.pivot.wtk.HorizontalAlignment;
import org.apache.pivot.wtk.Label;
import org.apache.pivot.wtk.VerticalAlignment;
import org.apache.pivot.wtk.Window;
public class HelloJava implements Application {
private Window window = null;
@Override
public void startup(Display display, Map<String, String> properties) {
Label label = new Label();
label.setText("Hello World!");
label.getStyles().put("font", new Font("Arial", Font.BOLD, 24));
label.getStyles().put("color", Color.RED);
label.getStyles().put("horizontalAlignment", HorizontalAlignment.CENTER);
label.getStyles().put("verticalAlignment", VerticalAlignment.CENTER);
window = new Window();
window.setContent(label);
window.setTitle("Hello World!");
window.setMaximized(true);
window.open(display);
}
@Override
public boolean shutdown(boolean optional) {
if (window != null) {
window.close();
}
return false;
}
@Override
public void suspend() { }
@Override
public void resume() { }
public static void main(String[] args) {
DesktopApplicationContext.main(HelloJava.class, args);
}
}
该演示程序使用了Pivot的几个特性: Application接口,Window窗口和样式
Application Interface是Apache Pivot程序的入口点,类似与Java中的main方法或者是传统的Java Applet的生命期管理接口。该接口定义了4个方法(3,4 和Applet的生命期管理接口类似)
-
startup() - 应用程序启动时被调用
-
shutdown() - 一个运行中的 程序关闭时被调用
-
suspend() - 当应用程序临时被去激活时调用
-
resume() - 当一个去激活的程序恢复时调用
不过这里和AWT/Swing中的Frame/Applet不一样的时,使用统一接口,是的程序可以运行于web或者桌面模式。而不是根据运行的环境使用不同的接口。
一个Pivot程序可以使用<applet>标签运行于浏览器。如下所示
<applet code="org.apache.pivot.wtk.BrowserApplicationContext$HostApplet" archive="lib/pivot-core-[version].jar,lib/pivot-wtk-[version].jar,lib/pivot-wtk-terra-[version].jar,lib/pivot-tutorials-[version].jar" width="160" height="80"> <param name="application_class_name" value="org.apache.pivot.tutorials.HelloJava"> </applet>
由于Java的入口点时main函数,因此我们在java main方法中调用DesktopApplicationContext.main()方法,并在第一个参数传递 Application扩展类的 class对象。
Window是Pivot GUI界面的入口点,几乎所有的Pivot程序至少会使用一个Window。
实例程序中使用的是最简单的,没有经过任何修饰的Window类的实例。还有其他更加复杂的Window实体类,比如Dialog,Frame,他们提供了更多的功能。
样式是用于定制组件外观的一组属性。样式被定义在组件的外观(skin)中,并通过组件的styles属性去存取。组件的styles属性是一个字典对象,包含很多样式的Key和Value。这里用到了font,color等几个样式。样式使我们不用去关心skin,skin对GUI开发者是透明的,通过样式即可改变其外观。
分享到:
相关推荐
Pivot: Revolution 是广受欢迎的 Pivot Stickfigure Animator 的重制版,它旨在允许使用简笔画轻松制作动画。 Pivot:然而,Revolution 将在其基础上添加许多功能,从而进一步简化使用。
java -jar pivot.jar TXN_SHIPPED_ITEM.properties已知的问题根本不处理错误。 如果文件不在正确的位置,则数据库中出现了问题,等等,您将失败。SAMPLE .properties文件 # For connecting to the databasejdbcUrl ...
Pivot 是图灵学院模块 3 的第一个项目。 学习目标包括: 将现有的餐厅模式改编为属于个体企业 注意安全权限,以便每个企业都不知道其他企业的数据 将所有逻辑下推到模型层,以便控制器和视图保持简单 使用和切换多...
枢 Pivot是一个库,用于通过Golang编写的跨各种数据库系统访问,查询和聚合数据的库。哪里:包和用法Pivot被组织为多个子包,这些子包执行各种功能: 包裹它能做什么... pivot 包的入口点。 从这里连接到数据库。 ...
react-virtualized-pivot是在和之上构建的React.js透视UI。 演示版 该演示使用提供的2007-2012年拒绝贷款数据中约24.7mb的未压缩.csv,269,372行乘9列(2,424,348个像元)。 入门 使用npm安装react-virtualized-...
自述 在 Heroku 上访问我们! / 支点:采用 Dinner Dash 项目并在保留遗留代码的情况下改变站点的目的支点您的 Dinner Dash 应用程序几乎很棒,但事实证明我们需要调整业务模型。 在本项目中,您将构建 Dinner Dash ...
ReactPivot ... npm i -S react-pivot var React = require ( 'react' ) var ReactPivot = require ( 'react-pivot' ) React . render ( < ReactPivot rows = { rows } dimensions = { dimensions }
Pivot可以从硬盘驱动器或直接从相机整理图像。 它允许您为复制过程指定目标文件夹和文件名模式。 组织主要基于图像的创建日期和时间。 有关数据透视功能的列表,请参阅数据透视主页。 捐赠给枢纽项目:...
Cha_The_Pivot 电子邮件镜像过滤器
Pivot 是一款 Web 应用程序,可帮助职业变革者探索新机会、比较职业选择并采取下一步措施实现职业变革。 它在与政府数据集合并的职位描述数据之上提供了一层分析,具有干净、有意的设计,将职业发现重新定义为一种...
var pivot = require ( "array-pivot" )var data = [ { foo : 1311 , bar : "cat" , zzz : 124.31 } , { foo : 41 , bar : 11 } , { foo : 159 , bar : 41 , aaa : 12 , zzz : 55 }]console . log ( pivot ( data )...
2框 Gray Smith和Tim Fischer 2DoBox从先前的IdeaBox存储库重构而来
python_pivot 该目录包含了教程实践代码和项目,这些是我从Scala到Python的转折点,用于Hadoop MapReduce,Hive和Spark等大数据分析工具。
相反,《微软Excel 2013:用PowerPivot 建立数据模型》承载了大量信息,这样一旦学完《微软Excel 2013:用PowerPivot 建立数据模型》 你在Excel新的建模选项中将有足够的背景知识。用最后一句话来强调这本书的主要...
脚本:PHP 5.X数据库:MySQL此类可用于生成数据库查询,以将结果显示到数据透视图视图中。 它也支持调试查询。
Laravel Pivot 该软件包为BelongsToMany关系上的sync(),attach(),detach()或updateExistingPivot()方法引入了新的雄辩事件。 Laravel问题 在Laravel中,当通过sync(),attach(),detach()或...
格式枢轴转换XSLT变形金刚词典的语言
Easily set your pivot points inside Unity. Unlike the other pivot editor solutions on the asset store you can set the pivot point using scene handles, snap the pivot to mesh vertices. Features: • ...
PivotTable.js 的多重聚合 PivotTable.js 的 JavaScript 插件。 它同时呈现多个聚合,并添加了用于呈现漂亮表格的配置 Multifact-pivottable 是的 JavaScript 插件。 它同时呈现多个聚合以及基于表达式的动态聚合 ...