JAVAFX纯手写布局
主页面效果:
第一栏的效果:
工程目录:
package MessageBean; /**
*
* @author novo
*/
public class Message {
private String MMQBH; //密码器编号
private String SCCS; //生产厂商
private String ZT; //密码器状态
private int KHH; //客户号
private String KHMC; //客户名称
private String BHFX; //是否本行发行
private String FXRQ; //发行登记日期
private String CJR; //创建人
public Message(){};
public Message(String MMQBH,String SCCS,String ZT,int KHH,String KHMC,String BHFX,String FXRQ,String CJR){
this.MMQBH = MMQBH;
this.SCCS = SCCS;
this.ZT = ZT;
this.KHH = KHH;
this.KHMC = KHMC;
this.BHFX = BHFX;
this.FXRQ = FXRQ;
this.CJR = CJR;
};
/**
* @return the MMQBH
*/
public String getMMQBH() {
return MMQBH;
} /**
* @param MMQBH the MMQBH to set
*/
public void setMMQBH(String MMQBH) {
this.MMQBH = MMQBH;
} /**
* @return the SCCS
*/
public String getSCCS() {
return SCCS;
} /**
* @param SCCS the SCCS to set
*/
public void setSCCS(String SCCS) {
this.SCCS = SCCS;
} /**
* @return the ZT
*/
public String getZT() {
return ZT;
} /**
* @param ZT the ZT to set
*/
public void setZT(String ZT) {
this.ZT = ZT;
} /**
* @return the KHH
*/
public int getKHH() {
return KHH;
} /**
* @param KHH the KHH to set
*/
public void setKHH(int KHH) {
this.KHH = KHH;
} /**
* @return the KHMC
*/
public String getKHMC() {
return KHMC;
} /**
* @param KHMC the KHMC to set
*/
public void setKHMC(String KHMC) {
this.KHMC = KHMC;
} /**
* @return the BHFX
*/
public String getBHFX() {
return BHFX;
} /**
* @param BHFX the BHFX to set
*/
public void setBHFX(String BHFX) {
this.BHFX = BHFX;
} /**
* @return the FXRQ
*/
public String getFXRQ() {
return FXRQ;
} /**
* @param FXRQ the FXRQ to set
*/
public void setFXRQ(String FXRQ) {
this.FXRQ = FXRQ;
} /**
* @return the CJR
*/
public String getCJR() {
return CJR;
} /**
* @param CJR the CJR to set
*/
public void setCJR(String CJR) {
this.CJR = CJR;
} }
package Message; import MessageBean.Message;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList; /**
*
* @author Administrator
*/
public class JsonMethod {
public static ObservableList<Message> getList(){
ObservableList<Message> list = FXCollections.observableArrayList();
Message msg1 = new Message();
msg1.setMMQBH("12453464");
msg1.setSCCS("四川xx");
msg1.setZT("正常");
msg1.setKHH(1001);
msg1.setKHMC("zhangsan");
msg1.setBHFX("是");
msg1.setFXRQ("2013-08-20 10:09:25");
msg1.setCJR("test1"); Message msg2 = new Message();
msg2.setMMQBH("8765432");
msg2.setSCCS("四川xx");
msg2.setZT("锁定");
msg2.setKHH(1090);
msg2.setKHMC("lisi");
msg2.setBHFX("是");
msg2.setFXRQ("2013-08-20 18:09:25");
msg2.setCJR("test4"); list.add(msg1);
list.add(msg2);
return list;
}
}
package mylayoutsample; import Message.JsonMethod;
import MessageBean.Message;
import javafx.application.Application;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Orientation;
import javafx.scene.Scene;
import javafx.scene.control.Accordion;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.Separator;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.TitledPane;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.stage.Stage; /**
*
* @author novo
*/
public class MyLayoutsample extends Application {
public Button tree1btn1 = new Button();
public Button tree1btn2 = new Button(); public Button tree2btn1 = new Button();
public Button tree2btn2 = new Button();
public Button tree2btn3 = new Button();
public Button tree2btn4 = new Button(); public Button tree3btn1 = new Button();
public Button tree3btn2 = new Button();
public Button tree3btn3 = new Button();
public Button tree3btn4 = new Button(); public Button tree4btn1 = new Button();
public Button tree4btn2 = new Button();
public Button tree4btn3 = new Button();
public Button tree4btn4 = new Button();
public Button tree4btn5 = new Button(); /**
* 设置根节点布局
* @return 返回布局
*/
public BorderPane setBorder(){
BorderPane layout = new BorderPane();
// layout.setTop(new Rectangle(200, 50, Color.DARKCYAN));
// layout.setBottom(new Rectangle(200, 50, Color.DARKCYAN));
// layout.setCenter(new Rectangle(100, 100, Color.MEDIUMAQUAMARINE));
// layout.setLeft(new Rectangle(50, 100, Color.DARKTURQUOISE));
// layout.setRight(new Rectangle(50, 100, Color.DARKTURQUOISE));
return layout;
}
/**
* 设置顶部
* @param layout 传入布局
*/
public void settop(BorderPane layout){
HBox hbox = new HBox();
hbox.setPadding(new Insets(15, 12, 15, 12));
hbox.setSpacing(10);
hbox.setStyle("-fx-background-color: #336699");
Label toplabel = new Label("XXXX科技有限公司");
toplabel.setFont(new Font(35));
toplabel.setTextFill(Color.BLACK);
hbox.getChildren().add(toplabel); VBox vbox = new VBox();
Separator sper = new Separator();
sper.setOrientation(Orientation.HORIZONTAL);
sper.setStyle(" -fx-background-color: #e79423;-fx-background-radius: 2;");
vbox.getChildren().addAll(hbox,sper); layout.setTop(vbox);
}
/**
* 设置左边部分
* @param layout 传入的布局
*/
public void setleft(BorderPane layout){
//第一个根节点
VBox vb1 = new VBox(5);
vb1.setPadding(new Insets(15, 12, 15, 12));
tree1btn1.setText("支付密码器管理");
tree1btn1.setPrefSize(150, 20); tree1btn2.setText("支付密码账户管理");
tree1btn2.setPrefSize(150, 20); vb1.getChildren().addAll(tree1btn1,tree1btn2);
TitledPane node1 = new TitledPane("支付密码器管理",vb1); //第二个根节点
VBox vb2 = new VBox(5);
vb2.setPadding(new Insets(15, 12, 15, 12));
tree2btn1.setText("机构管理");
tree2btn1.setPrefSize(150, 20); tree2btn2.setText("用户管理管理");
tree2btn2.setPrefSize(150, 20); tree2btn3.setText("核验规则设置");
tree2btn3.setPrefSize(150, 20); tree2btn4.setText("企业客户管理");
tree2btn4.setPrefSize(150, 20); vb2.getChildren().addAll(tree2btn1,tree2btn2,tree2btn3,tree2btn4);
TitledPane node2 = new TitledPane("系统管理",vb2); //第三个根节点
VBox vb3 = new VBox(5);
vb3.setPadding(new Insets(15, 12, 15, 12));
tree3btn1.setText("票据核验");
tree3btn1.setPrefSize(150, 20); tree3btn2.setText("密码器状态");
tree3btn2.setPrefSize(150, 20); tree3btn3.setText("账户分布情况");
tree3btn3.setPrefSize(150, 20); tree3btn4.setText("密码器中账户");
tree3btn4.setPrefSize(150, 20); vb3.getChildren().addAll(tree3btn1,tree3btn2,tree3btn3,tree3btn4);
TitledPane node3 = new TitledPane("工具",vb3); //第四个根节点
VBox vb4 = new VBox(5);
vb4.setPadding(new Insets(15, 12, 15, 12));
tree4btn1.setText("用户日志");
tree4btn1.setPrefSize(150, 20); tree4btn2.setText("密码器日志");
tree4btn2.setPrefSize(150, 20); tree4btn3.setText("票据日志");
tree4btn3.setPrefSize(150, 20); tree4btn4.setText("账号签约明细");
tree4btn4.setPrefSize(150, 20); tree4btn5.setText("密码器发行情况明细");
tree4btn5.setPrefSize(150, 20); vb4.getChildren().addAll(tree4btn1,tree4btn2,tree4btn3,tree4btn4,tree4btn5);
TitledPane node4 = new TitledPane("报表与日志管理",vb4); //设置树形根节点
Accordion accordion = new Accordion();
accordion.getPanes().add(node1);
accordion.getPanes().add(node2);
accordion.getPanes().add(node3);
accordion.getPanes().add(node4); HBox hb = new HBox();
Separator sper = new Separator();
sper.setOrientation(Orientation.VERTICAL);
sper.setStyle(" -fx-background-color: #e79423;-fx-background-radius: 2;");
hb.getChildren().addAll(accordion,sper); //将树形节点加如布局的左边
layout.setLeft(hb); }
/**
* 设置中间部分
* @param layout 传入的布局
*/
public void setcenter(final BorderPane layout){
Label testt = new Label("默认页面");
layout.setCenter(testt);
//树节点1的第一个按钮功能页面的设置
tree1btn1.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent t) {
layout.setCenter(settree1btn1centerlayout(JsonMethod.getList()));
}
});
//树节点1的第二个按钮功能页面的设置
tree1btn2.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent t) {
layout.setCenter(settree1btn2centerlayout());
}
});
}
/**
* 树节点1的第一个按钮的页面设置
* @return 返回一个竖直方向的布局
*/
public VBox settree1btn1centerlayout(final ObservableList<Message> list){
//最上面一排按钮
HBox tophb = new HBox(5);
tophb.setPadding(new Insets(15, 12, 15, 12));
Button btn1 = new Button("发行");
btn1.setPrefSize(60, 20);
Button btn2 = new Button("解锁");
btn2.setPrefSize(60, 20);
Button btn3 = new Button("停用");
btn3.setPrefSize(60, 20);
Button btn4 = new Button("启用");
btn4.setPrefSize(60, 20);
Button btn5 = new Button("挂失");
btn5.setPrefSize(60, 20);
tophb.getChildren().addAll(btn1,btn2,btn3,btn4,btn5); //中间一行
VBox centervb = new VBox(5);
centervb.setPadding(new Insets(15, 12, 5, 12));
Label labelct = new Label("查询条件"); //外面标题
labelct.setFont(new Font(15));
HBox center_hb = new HBox(5);
center_hb.setPadding(new Insets(5, 12, 15, 0));
Label label1 = new Label("密码器编号");
Label label2 = new Label("密码器账户");
Label label3 = new Label("客户号");
TextField tf1= new TextField();
tf1.setPrefColumnCount(10); //设置偏爱的文本框宽度
TextField tf2= new TextField();
tf2.setPrefColumnCount(10); //设置偏爱的文本框宽度
TextField tf3= new TextField();
tf3.setPrefColumnCount(10); //设置偏爱的文本框宽度
Button btnquery = new Button("查询");
btnquery.setPrefSize(60, 20);
center_hb.getChildren().addAll(label1,tf1,label2,tf2,label3,tf3,btnquery);
centervb.getChildren().addAll(labelct,center_hb); //下面表格 TableView<Message> tableview = new TableView<>();
TableColumn clo1 = new TableColumn();
clo1.setText("密码器编号");
clo1.setCellValueFactory(new PropertyValueFactory("MMQBH"));
clo1.setMinWidth(100);
// tableview.getColumns().add(clo1);
TableColumn clo2 = new TableColumn();
clo2.setText("生产厂商");
clo2.setCellValueFactory(new PropertyValueFactory("SCCS"));
clo2.setMinWidth(100);
// tableview.getColumns().add(clo2);
TableColumn clo3 = new TableColumn();
clo3.setText("密码器状态");
clo3.setCellValueFactory(new PropertyValueFactory("ZT"));
clo3.setMinWidth(100);
// tableview.getColumns().add(clo3);
TableColumn clo4 = new TableColumn();
clo4.setText("客户号");
clo4.setCellValueFactory(new PropertyValueFactory("KHH"));
clo4.setMinWidth(100);
// tableview.getColumns().add(clo4);
TableColumn clo5 = new TableColumn();
clo5.setText("客户名称");
clo5.setCellValueFactory(new PropertyValueFactory("KHMC"));
clo5.setMinWidth(100);
// tableview.getColumns().add(clo5);
TableColumn clo6 = new TableColumn();
clo6.setText("是否本行发行");
clo6.setCellValueFactory(new PropertyValueFactory("BHFX"));
clo6.setMinWidth(100);
// tableview.getColumns().add(clo6);
TableColumn clo7 = new TableColumn();
clo7.setText("发行/登记日期");
clo7.setCellValueFactory(new PropertyValueFactory("FXRQ"));
clo7.setMinWidth(100);
// tableview.getColumns().add(clo7);
TableColumn clo8 = new TableColumn();
clo8.setText("创建人");
clo8.setCellValueFactory(new PropertyValueFactory("CJR"));
clo8.setMinWidth(100);
// tableview.getColumns().add(clo8);
tableview.setItems(list);
tableview.getColumns().addAll(clo1,clo2,clo3,clo4,clo5,clo6,clo7,clo8);
// tableview.setEditable(true);
VBox tavbox = new VBox();
tavbox.setSpacing(5);
tavbox.setPadding(new Insets(10, 0, 0, 10));
tavbox.getChildren().addAll(tableview); //添加一行table的功能
final TextField tx1 = new TextField();
tx1.setPromptText("密码器编号");
tx1.setMaxWidth(clo1.getPrefWidth());
final TextField tx2 = new TextField();
tx2.setPromptText("生产厂商");
tx2.setMaxWidth(clo2.getPrefWidth());
final TextField tx3 = new TextField();
tx3.setPromptText("密码器状态");
tx3.setMaxWidth(clo3.getPrefWidth());
final TextField tx4 = new TextField();
tx4.setPromptText("客户号");
tx4.setMaxWidth(clo4.getPrefWidth());
final TextField tx5 = new TextField();
tx5.setPromptText("客户名称");
tx5.setMaxWidth(clo5.getPrefWidth());
final TextField tx6 = new TextField();
tx6.setPromptText("是否本行发行");
tx6.setMaxWidth(clo6.getPrefWidth());
final TextField tx7 = new TextField();
tx7.setPromptText("发行/登记日期");
tx7.setMaxWidth(clo7.getPrefWidth());
final TextField tx8 = new TextField();
tx8.setPromptText("创建人");
tx8.setMaxWidth(clo8.getPrefWidth()); final Button addButton = new Button("添加记录");
addButton.setPrefSize(100, 20);
addButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
list.add(new Message(
tx1.getText(),
tx2.getText(),
tx3.getText(),
Integer.parseInt(tx4.getText()),
tx5.getText(),
tx6.getText(),
tx7.getText(),
tx8.getText()));
tx1.clear();
tx2.clear();
tx3.clear();
tx4.clear();
tx5.clear();
tx6.clear();
tx7.clear();
tx8.clear();
}
});
HBox addbox = new HBox(10);
addbox.setPadding(new Insets(10, 10, 10, 10));
addbox.getChildren().addAll(tx1,tx2,tx3,tx4,tx5,tx6,tx7,tx8,addButton); //分割线
Separator sper1 = new Separator();
sper1.setOrientation(Orientation.HORIZONTAL);
Separator sper2 = new Separator();
sper2.setOrientation(Orientation.HORIZONTAL); VBox vblast = new VBox();
vblast.getChildren().addAll(tophb,sper1,centervb,sper2,tavbox,addbox);
return vblast;
}
/**
* 树节点1的第二个按钮的页面设置
* @return 返回一个竖直方向的布局
*/
public VBox settree1btn2centerlayout(){
VBox vblast = new VBox();
Label test = new Label("支付密码账户管理器的页面");
vblast.getChildren().addAll(test);
vblast.setStyle("-fx-background-color: #221489");
return vblast;
}
@Override
public void start(Stage primaryStage) {
BorderPane root = setBorder();
settop(root);
setleft(root);
setcenter(root);
Scene scene = new Scene(root,1000,600);
primaryStage.setTitle("Layout sample");
primaryStage.setScene(scene);
primaryStage.show();
} public static void main(String[] args) {
launch(args);
}
}
上面有一个table的数据绑定知识点。。。。
JAVAFX纯手写布局的更多相关文章
- springmvc 动态代理 JDK实现与模拟JDK纯手写实现。
首先明白 动态代理和静态代理的区别: 静态代理:①持有被代理类的引用 ② 代理类一开始就被加载到内存中了(非常重要) 动态代理:JDK中的动态代理中的代理类是动态生成的.并且生成的动态代理类为$Pr ...
- 简易-五星评分-jQuery纯手写
超级简单的评分功能,分为四个步骤轻松搞定: 第一步: 引入jquery文件:这里我用百度CDN的jquery: <script src="http://apps.bdimg.com/l ...
- vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件
vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件/库 一提到移动端的下拉刷新上拉翻页,你可能就会想到iScroll插件,没错iScroll是一个高性能,资源 ...
- 超级简单的jQuery纯手写五星评分效果
超级简单的评分功能,分为四个步骤轻松搞定: 第一步: 引入jquery文件:这里我用百度CDN的jquery: <script src="http://apps.bdimg.com/l ...
- 纯手写Myatis框架
1.接口层-和数据库交互的方式 MyBatis和数据库的交互有两种方式: 使用传统的MyBatis提供的API: 使用Mapper接口: 2.使用Mapper接口 MyBatis 将配置文件中的每一个 ...
- SQL纯手写创建数据库到表内内容
建表啥的只点点鼠标,太外行了,不如来看看我的纯手写,让表从无到有一系列:还有存储过程临时表,不间断的重排序: 一:建数据库 create Database Show on primary ( name ...
- 纯手写SpringMVC到SpringBoot框架项目实战
引言 Spring Boot其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置. 通过这种方式,springboot ...
- 纯手写实现ajax分页功能
前言 最近用到了这个功能,百度大半天,网上的不是有各种问题就是需要引入其他的插件,无奈,只能自己写,大致功能已经完成.前端页面用bootstrap做样式,分页功能用ajax实现,没用其他插件哦,只引入 ...
- qt之旅-1纯手写Qt界面
通过手写qt代码来认识qt程序的构成,以及特性.设计一个查找对话框.以下是设计过程 1 新建一个empty qt project 2 配置pro文件 HEADERS += \ Find.h QT += ...
随机推荐
- Android高级控件--AdapterView与Adapter
在J2EE中提供过一种非常好的框架--MVC框架,实现原理:数据模型M(Model)存放数据,利用控制器C(Controller)将数据显示在视图V(View)上.在Android中有这样一种高级控件 ...
- 主流的单元测试工具之-JAVA新特性-Annotation 写作者:组长 梁伟龙
1:什么是Annotation?Annotation,即“@xxx”(如@Before,@After,@Test(timeout=xxx),@ignore),这个单词一般是翻译成元数据,是JAVA的一 ...
- JS获取元素尺寸大小、鼠标位置
//e.clientX|Y:表示鼠标相对浏览器可视窗口的当前坐标 //e.offsetX|Y:表示鼠标相对于事件源对象的坐标 //e.pageX|Y:表示鼠标相对于网页的坐标 /* element.o ...
- go并发
Go语言从语言层面上就支持了并发,这与其他语言大不一样,不像以前我们要用Thread库 来新建线程,还要用线程安全的队列库来共享数据. 以下是我入门的学习笔记. 首先,并行!=并发, 两者是不同的,可 ...
- jq checkbox 的全选并ajax传参
/全选按钮 $("#all").click(function(){ if(this.checked){ $(":checkbox").prop("ch ...
- 【转】ArcGIS地图缓存制作简介
[PDF]ArcGIS 地图缓存制作简介 - Esri中国 ArcGIS地图缓存制作简介 制作好的电子地图只有发布为服务后才能为更多的用户所查看与使用.ArcGIS Server 为共享 GIS 资源 ...
- MySQL问题记录--Can't connect to MySQL server on localhost (10061)解决方法
本文mysql的安装环境为win7 64位,mysql版本为MySQL5.7 问题描述:在命令行输入 mysql -u root -p 登录mysql,返回"Can't connect to ...
- 不注册Tomcat服务,运行Tomcat不弹出JAVA控制台窗口
http://blog.csdn.net/yangholmes_blog/article/details/52881296
- windows下安装beautifulsoup4
方法一: pip install beautifulsoup4 方法二: 在官网下载安装包后,放在python目录下--运行cmd--进入bs4安装包路径--输入setup.py install 测试 ...
- HTML页面优化
第一步:加载优化 减少HTTP请求. 因为手机浏览器同时响应请求为4个请求(Android支持4个,iOS 5后可支持6个),所以要尽量减少页面的请求数,首次加载同时请求数不能超过4个.a) 合并CS ...