1.编写示例程序:
package buttonsample;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.geometry.Pos;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.effect.DropShadow;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.stage.Stage;
public class ButtonSample extends Application {
private static final Color color = Color.web("#464646");
Button button3 = new Button("Decline");
DropShadow shadow = new DropShadow();
Label label = new Label();
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) {
Scene scene = new Scene(new Group());
stage.setTitle("Button Sample");
stage.setWidth(300);
stage.setHeight(190);
scene.getStylesheets().add("buttonsample/ControlStyle.css");
label.setFont(Font.font("Times New Roman", 22));
label.setTextFill(color);
Image imageDecline = new Image(getClass().getResourceAsStream("not.png"));
Image imageAccept = new Image(getClass().getResourceAsStream("ok.png"));
VBox vbox = new VBox();
vbox.setLayoutX(20);
vbox.setLayoutY(20);
HBox hbox1 = new HBox();
HBox hbox2 = new HBox();
Button button1 = new Button("Accept", new ImageView(imageAccept));
button1.getStyleClass().add("button1");
button1.setOnAction((ActionEvent e) -> {
label.setText("Accepted");
});
Button button2 = new Button("Accept");
button2.setOnAction((ActionEvent e) -> {
label.setText("Accepted");
});
button3.setOnAction((ActionEvent e) -> {
label.setText("Declined");
});
button3.addEventHandler(MouseEvent.MOUSE_ENTERED, (MouseEvent e) -> {
button3.setEffect(shadow);
});
button3.addEventHandler(MouseEvent.MOUSE_EXITED, (MouseEvent e) -> {
button3.setEffect(null);
});
hbox1.getChildren().add(button2);
hbox1.getChildren().add(button3);
hbox1.getChildren().add(label);
hbox1.setSpacing(10);
hbox1.setAlignment(Pos.BOTTOM_CENTER);
Button button4 = new Button();
button4.setGraphic(new ImageView(imageAccept));
button4.setOnAction((ActionEvent e) -> {
label.setText("Accepted");
});
Button button5 = new Button();
button5.setGraphic(new ImageView(imageDecline));
button5.setOnAction((ActionEvent e) -> {
label.setText("Declined");
});
hbox2.getChildren().add(button4);
hbox2.getChildren().add(button5);
hbox2.setSpacing(25);
vbox.getChildren().add(button1);
vbox.getChildren().add(hbox1);
vbox.getChildren().add(hbox2);
vbox.setSpacing(10);
((Group)scene.getRoot()).getChildren().add(vbox);
stage.setScene(scene);
stage.show();
}
}
2.打包形成button.jar
选择工程右键属性 -> Export -> 选择Runnable JAR file -> 选择运行类,选择Extract required libraries into generated JAR -> Finish
3.数字签名
D:\apache-tomcat-6.0.36\webapps\ttttt>keytool -genkey -keystore buttonKeystore -
alias button
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
[Unknown]:
您的组织单位名称是什么?
[Unknown]:
您的组织名称是什么?
[Unknown]:
您所在的城市或区域名称是什么?
[Unknown]:
您所在的省/市/自治区名称是什么?
[Unknown]:
该单位的双字母国家/地区代码是什么?
[Unknown]:
CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown是否正确?
[否]: y
输入 <button> 的密钥口令
(如果和密钥库口令相同, 按回车):
再次输入新口令:
D:\apache-tomcat-6.0.36\webapps\ttttt>jarsigner -keystore buttonKeystore Button.
jar button
4.新建button.jnlp文件
<?xml version="1.0" encoding="UTF-8"?>
<jnlp codebase="http://localhost:8080/tttttt/">
<information>
<title>Button</title>
<vendor>Lively Corporation</vendor>
<description>Button Test Example</description>
<homepage href="http://127.0.0.1:8080/tttttt/index.html"
mce_href="http://127.0.0.1:8080/tttttt/index.html" />
<icon kind="splash" href="12.jpg" mce_href="12.jpg" />
<offline-allowed/>
</information>
<resources>
<j2se version="1.5+" />
<jar href="Button.jar" mce_href="Button.jar" />
</resources>
<application-desc main-class="buttonsample.ButtonSample" />
</jnlp>
4.编写html文件
<a href="button.jnlp">Launch Application</a>
5.javaws -viewer