Java按钮设计

fearlessMore 2013-08-24 04:57:50
package com.han;

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.SceneBuilder;
import javafx.scene.control.ButtonBuilder;
import javafx.scene.control.ToolBarBuilder;
import javafx.scene.layout.BorderPaneBuilder;
import javafx.scene.layout.VBoxBuilder;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

public class ButtonStyles extends Application {
public static void main(String[] args) { launch(args); }

@Override public void start(Stage primaryStage) {
primaryStage.setTitle("JavaFX CSS Buttons");
primaryStage.setScene(SceneBuilder.create()
.stylesheets(ButtonStyles.class.getResource("Buttons.css").toExternalForm())
.fill(Color.gray(0.9))
.root(
BorderPaneBuilder.create()
.left(
VBoxBuilder.create()
.spacing(10)
.padding(new Insets(20))
.alignment(Pos.CENTER)
.children(
ButtonBuilder.create().text("Green").id("green").build(),
ButtonBuilder.create().text("Round Red").id("round-red").build(),
ButtonBuilder.create().text("Bevel Grey").id("bevel-grey").build(),
ButtonBuilder.create().text("Glass Grey").id("glass-grey").build(),
ButtonBuilder.create().text("Shiny Orange").id("shiny-orange").build(),
ButtonBuilder.create().text("DARK BLUE").id("dark-blue").build(),
ButtonBuilder.create().text("Record Sales").id("record-sales").build(),
ButtonBuilder.create().text("Rich Blue").id("rich-blue").build(),
ButtonBuilder.create().text("Big Yellow").id("big-yellow").build(),
ToolBarBuilder.create()
.id("iphone-toolbar")
.items(
ButtonBuilder.create().text("iPhone").id("iphone").build()
)
.build(),
ButtonBuilder.create().text("Large iPad Dark Grey").id("ipad-dark-grey").build(),
ButtonBuilder.create().text("Large iPad Grey").id("ipad-grey").build(),
ButtonBuilder.create().text("OSX Lion (Default)").id("lion-default").build(),
ButtonBuilder.create().text("OSX Lion").id("lion").build(),
ButtonBuilder.create().text("Windows 7 (Default)").id("windows7-default").build(),
ButtonBuilder.create().text("Windows 7").id("windows7").build()
)
.build()
)
.center(
VBoxBuilder.create()
.spacing(10)
.padding(new Insets(20))
.alignment(Pos.CENTER)
.style("-fx-background-color: #373737;")
.children(
ButtonBuilder.create().text("Green").id("green").build(),
ButtonBuilder.create().text("Round Red").id("round-red").build(),
ButtonBuilder.create().text("Bevel Grey").id("bevel-grey").build(),
ButtonBuilder.create().text("Glass Grey").id("glass-grey").build(),
ButtonBuilder.create().text("Shiny Orange").id("shiny-orange").build(),
ButtonBuilder.create().text("DARK BLUE").id("dark-blue").build(),
ButtonBuilder.create().text("Record Sales").id("record-sales").build(),
ButtonBuilder.create().text("Rich Blue").id("rich-blue").build(),
ButtonBuilder.create().text("Big Yellow").id("big-yellow").build(),
ToolBarBuilder.create()
.id("iphone-toolbar")
.items(
ButtonBuilder.create().text("iPhone").id("iphone").build()
)
.build(),
ButtonBuilder.create().text("Large iPad Dark Grey").id("ipad-dark-grey").build(),
ButtonBuilder.create().text("Large iPad Grey").id("ipad-grey").build(),
ButtonBuilder.create().text("OSX Lion (Default)").id("lion-default").build(),
ButtonBuilder.create().text("OSX Lion").id("lion").build(),
ButtonBuilder.create().text("Windows 7 (Default)").id("windows7-default").build(),
ButtonBuilder.create().text("Windows 7").id("windows7").build()
)
.build()
)
.build()
)
.build());
primaryStage.show();
}
}
...全文
205 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fearlessMore 2013-08-25
  • 打赏
  • 举报
回复
引用 6 楼 nj_dobetter 的回复:
引用 5 楼 Gaowen_HAN 的回复:
[quote=引用 4 楼 nj_dobetter 的回复:] 这么强大!!
比SWT不会差吧
没有怎么用过SWT,SWT听起来蛮吸引人的,其实他还是需要JRE,所以我认为那还不及用Swing/L&F,以一种统一的方式做软件。 不过貌似号称用SWT做软件UI,剪裁压缩JRE,最后把剪裁后JRE和自己的软件打包在一起,做成的发布版软件非常非常小,可以小到5MB,这个还是很吸引人的。 JavaFX我还是很少接触,只是最近几年看到过一些例子和文档说明。现在做应用软件的界面都XML化了,Java也得跟上形势,所以推出了JavaFX。应该说Java2D的功能完全应付得了。[/quote]我基于Basic、Metal做过一个L&F,基于Synth做一个L&F,现在正在做基于Nimbus的Look and Feel,感觉不错但是还是有不少缺陷,但是Swing的绘图机制很强大。反正各有优缺点吧,但是现在的用Ant task打包都可以内嵌一个JRE版本,称为standalone。以及格式.exe, .jar, .jnlp(WebStart), .html(web page)
nj_dobetter 2013-08-25
  • 打赏
  • 举报
回复
引用 5 楼 Gaowen_HAN 的回复:
引用 4 楼 nj_dobetter 的回复:
这么强大!!
比SWT不会差吧
没有怎么用过SWT,SWT听起来蛮吸引人的,其实他还是需要JRE,所以我认为那还不及用Swing/L&F,以一种统一的方式做软件。 不过貌似号称用SWT做软件UI,剪裁压缩JRE,最后把剪裁后JRE和自己的软件打包在一起,做成的发布版软件非常非常小,可以小到5MB,这个还是很吸引人的。 JavaFX我还是很少接触,只是最近几年看到过一些例子和文档说明。现在做应用软件的界面都XML化了,Java也得跟上形势,所以推出了JavaFX。应该说Java2D的功能完全应付得了。
fearlessMore 2013-08-25
  • 打赏
  • 举报
回复
引用 4 楼 nj_dobetter 的回复:
这么强大!!
比SWT不会差吧
nj_dobetter 2013-08-25
  • 打赏
  • 举报
回复
这么强大!!
  • 打赏
  • 举报
回复
末日哥 2013-08-24
  • 打赏
  • 举报
回复
fearlessMore 2013-08-24
  • 打赏
  • 举报
回复
.root {
-fx-font-size: 16px;
}
#green {
-fx-background-color:
linear-gradient(#f0ff35, #a9ff00),
radial-gradient(center 50% -40%, radius 200%, #b8ee36 45%, #80c800 50%);
-fx-background-radius: 6, 5;
-fx-background-insets: 0, 1;
-fx-effect: dropshadow( three-pass-box , rgba(0,0,0,0.4) , 5, 0.0 , 0 , 1 );
-fx-text-fill: #395306;
}
#round-red {
-fx-background-color: linear-gradient(#ff5400, #be1d00);
-fx-background-radius: 30;
-fx-background-insets: 0;
-fx-text-fill: white;
}
#bevel-grey {
-fx-background-color:
linear-gradient(#f2f2f2, #d6d6d6),
linear-gradient(#fcfcfc 0%, #d9d9d9 20%, #d6d6d6 100%),
linear-gradient(#dddddd 0%, #f6f6f6 50%);
-fx-background-radius: 8,7,6;
-fx-background-insets: 0,1,2;
-fx-text-fill: black;
-fx-effect: dropshadow( three-pass-box , rgba(0,0,0,0.6) , 5, 0.0 , 0 , 1 );
}
#glass-grey {
-fx-background-color:
#c3c4c4,
linear-gradient(#d6d6d6 50%, white 100%),
radial-gradient(center 50% -40%, radius 200%, #e6e6e6 45%, rgba(230,230,230,0) 50%);
-fx-background-radius: 30;
-fx-background-insets: 0,1,1;
-fx-text-fill: black;
-fx-effect: dropshadow( three-pass-box , rgba(0,0,0,0.6) , 3, 0.0 , 0 , 1 );
}
#shiny-orange {
-fx-background-color:
linear-gradient(#ffd65b, #e68400),
linear-gradient(#ffef84, #f2ba44),
linear-gradient(#ffea6a, #efaa22),
linear-gradient(#ffe657 0%, #f8c202 50%, #eea10b 100%),
linear-gradient(from 0% 0% to 15% 50%, rgba(255,255,255,0.9), rgba(255,255,255,0));
-fx-background-radius: 30;
-fx-background-insets: 0,1,2,3,0;
-fx-text-fill: #654b00;
-fx-font-weight: bold;
-fx-font-size: 14px;
-fx-padding: 10 20 10 20;
}
#dark-blue {
-fx-background-color:
#090a0c,
linear-gradient(#38424b 0%, #1f2429 20%, #191d22 100%),
linear-gradient(#20262b, #191d22),
radial-gradient(center 50% 0%, radius 100%, rgba(114,131,148,0.9), rgba(255,255,255,0));
-fx-background-radius: 5,4,3,5;
-fx-background-insets: 0,1,2,0;
-fx-text-fill: white;
-fx-effect: dropshadow( three-pass-box , rgba(0,0,0,0.6) , 5, 0.0 , 0 , 1 );
-fx-font-family: "Arial";
-fx-text-fill: linear-gradient(white, #d0d0d0);
-fx-font-size: 12px;
-fx-padding: 10 20 10 20;
}
#dark-blue Text {
-fx-effect: dropshadow( one-pass-box , rgba(0,0,0,0.9) , 1, 0.0 , 0 , 1 );
}
#record-sales {
-fx-padding: 8 15 15 15;
-fx-background-insets: 0,0 0 5 0, 0 0 6 0, 0 0 7 0;
-fx-background-radius: 8;
-fx-background-color:
linear-gradient(from 0% 93% to 0% 100%, #a34313 0%, #903b12 100%),
#9d4024,
#d86e3a,
radial-gradient(center 50% 50%, radius 100%, #d86e3a, #c54e2c);
-fx-effect: dropshadow( gaussian , rgba(0,0,0,0.75) , 4,0,0,1 );
-fx-font-weight: bold;
-fx-font-size: 1.1em;
}
#record-sales:hover {
-fx-background-color:
linear-gradient(from 0% 93% to 0% 100%, #a34313 0%, #903b12 100%),
#9d4024,
#d86e3a,
radial-gradient(center 50% 50%, radius 100%, #ea7f4b, #c54e2c);
}
#record-sales:pressed {
-fx-padding: 10 15 13 15;
-fx-background-insets: 2 0 0 0,2 0 3 0, 2 0 4 0, 2 0 5 0;
}
#record-sales Text {
-fx-fill: white;
-fx-effect: dropshadow( gaussian , #a30000 , 0,0,0,2 );
}
#rich-blue {
-fx-background-color:
#000000,
linear-gradient(#7ebcea, #2f4b8f),
linear-gradient(#426ab7, #263e75),
linear-gradient(#395cab, #223768);
-fx-background-insets: 0,1,2,3;
-fx-background-radius: 3,2,2,2;
-fx-padding: 12 30 12 30;
-fx-text-fill: white;
-fx-font-size: 12px;
}
#rich-blue Text {
-fx-effect: dropshadow( one-pass-box , rgba(0,0,0,0.8) , 0, 0.0 , 0 , 1);
}
#big-yellow {
-fx-background-color:
#ecebe9,
rgba(0,0,0,0.05),
linear-gradient(#dcca8a, #c7a740),
linear-gradient(#f9f2d6 0%, #f4e5bc 20%, #e6c75d 80%, #e2c045 100%),
linear-gradient(#f6ebbe, #e6c34d);
-fx-background-insets: 0,9 9 8 9,9,10,11;
-fx-background-radius: 50;
-fx-padding: 15 30 15 30;
-fx-font-family: "Helvetica";
-fx-font-size: 18px;
-fx-text-fill: #311c09;
-fx-effect: innershadow( three-pass-box , rgba(0,0,0,0.1) , 2, 0.0 , 0 , 1);
}
#big-yellow Text {
-fx-effect: dropshadow( one-pass-box , rgba(255,255,255,0.5) , 0, 0.0 , 0 , 1);
}
#iphone-toolbar {
-fx-background-color: linear-gradient(#98a8bd 0%, #8195af 25%, #6d86a4 100%);
}
#iphone {
-fx-background-color:
#a6b5c9,
linear-gradient(#303842 0%, #3e5577 20%, #375074 100%),
linear-gradient(#768aa5 0%, #849cbb 5%, #5877a2 50%, #486a9a 51%, #4a6c9b 100%);
-fx-background-insets: 0 0 -1 0,0,1;
-fx-background-radius: 5,5,4;
-fx-padding: 7 30 7 30;
-fx-text-fill: #242d35;
-fx-font-family: "Helvetica";
-fx-font-size: 12px;
-fx-text-fill: white;
}
#iphone Text {
-fx-effect: dropshadow( one-pass-box , rgba(0,0,0,0.8) , 0, 0.0 , 0 , -1 );
}
#ipad-dark-grey {
-fx-background-color:
linear-gradient(#686868 0%, #232723 25%, #373837 75%, #757575 100%),
linear-gradient(#020b02, #3a3a3a),
linear-gradient(#9d9e9d 0%, #6b6a6b 20%, #343534 80%, #242424 100%),
linear-gradient(#8a8a8a 0%, #6b6a6b 20%, #343534 80%, #262626 100%),
linear-gradient(#777777 0%, #606060 50%, #505250 51%, #2a2b2a 100%);
-fx-background-insets: 0,1,4,5,6;
-fx-background-radius: 9,8,5,4,3;
-fx-padding: 15 30 15 30;
-fx-font-family: "Helvetica";
-fx-font-size: 18px;
-fx-font-weight: bold;
-fx-text-fill: white;
-fx-effect: dropshadow( three-pass-box , rgba(255,255,255,0.2) , 1, 0.0 , 0 , 1);
}
#ipad-dark-grey Text {
-fx-effect: dropshadow( one-pass-box , black , 0, 0.0 , 0 , -1 );
}
#ipad-grey {
-fx-background-color:
linear-gradient(#686868 0%, #232723 25%, #373837 75%, #757575 100%),
linear-gradient(#020b02, #3a3a3a),
linear-gradient(#b9b9b9 0%, #c2c2c2 20%, #afafaf 80%, #c8c8c8 100%),
linear-gradient(#f5f5f5 0%, #dbdbdb 50%, #cacaca 51%, #d7d7d7 100%);
-fx-background-insets: 0,1,4,5;
-fx-background-radius: 9,8,5,4;
-fx-padding: 15 30 15 30;
-fx-font-family: "Helvetica";
-fx-font-size: 18px;
-fx-font-weight: bold;
-fx-text-fill: #333333;
-fx-effect: dropshadow( three-pass-box , rgba(255,255,255,0.2) , 1, 0.0 , 0 , 1);
}
#ipad-grey Text {
-fx-effect: dropshadow( one-pass-box , white , 0, 0.0 , 0 , 1 );
}
#lion-default {
-fx-background-color:
rgba(0,0,0,0.08),
linear-gradient(#5a61af, #51536d),
linear-gradient(#e4fbff 0%,#cee6fb 10%, #a5d3fb 50%, #88c6fb 51%, #d5faff 100%);
-fx-background-insets: 0 0 -1 0,0,1;
-fx-background-radius: 5,5,4;
-fx-padding: 3 30 3 30;
-fx-text-fill: #242d35;
-fx-font-size: 14px;
}
#lion {
-fx-background-color:
rgba(0,0,0,0.08),
linear-gradient(#9a9a9a, #909090),
linear-gradient(white 0%, #f3f3f3 50%, #ececec 51%, #f2f2f2 100%);
-fx-background-insets: 0 0 -1 0,0,1;
-fx-background-radius: 5,5,4;
-fx-padding: 3 30 3 30;
-fx-text-fill: #242d35;
-fx-font-size: 14px;
}
#windows7-default {
-fx-background-color:
#3c7fb1,
linear-gradient(#fafdfe, #e8f5fc),
linear-gradient(#eaf6fd 0%, #d9f0fc 49%, #bee6fd 50%, #a7d9f5 100%);
-fx-background-insets: 0,1,2;
-fx-background-radius: 3,2,1;
-fx-padding: 3 30 3 30;
-fx-text-fill: black;
-fx-font-size: 14px;
}
#windows7 {
-fx-background-color:
#707070,
linear-gradient(#fcfcfc, #f3f3f3),
linear-gradient(#f2f2f2 0%, #ebebeb 49%, #dddddd 50%, #cfcfcf 100%);
-fx-background-insets: 0,1,2;
-fx-background-radius: 3,2,1;
-fx-padding: 3 30 3 30;
-fx-text-fill: black;
-fx-font-size: 14px;
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧