JAVAFX纯手写布局
来源:互联网 发布:underscore.js 下载 编辑:程序博客网 时间:2024/04/29 15:24
主页面效果:
第一栏的效果:
工程目录:
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纯手写布局
- 纯手写bmp图片
- ios中纯手写代码怎么实现内容的自动布局
- ios中纯手写代码怎么实现控件的自动布局(约束)
- javafx布局入门
- javafx布局之gridpane
- 手写纯HTML5 page一个
- MFC1-纯手写一个程序
- 纯js 手写轮播
- 用代码手写布局
- Android 手写百分比布局
- 手写响应式布局,
- JavaFX技巧:纯Java代码调用JavaFX的例子
- 在JavaFX中使用布局
- JavaFX 内置的布局面板
- JavaFX入门(四):JavaFX布局(一)
- java手写复杂的布局
- 适配 - 手写 IOS自动布局
- DataTable的一些使用技巧
- 2013年9月、10月、11月、12月至1月中旬
- sql语句的使用(四)
- servlet装载与启动 与 servlet生命周期
- 软考知识点-战略管理过程
- JAVAFX纯手写布局
- Matlab del2--->C++
- cocos2d-x 开始
- 校招季——Python笔记三
- 认识数字2
- 文本处理之计算某列数值的平均值
- hdu 1164 Eddy's research I
- Source Insight使用技巧1
- 只是 抱怨一下。。。。就是抱怨。