Advertisement
Guest User

Untitled

a guest
Nov 21st, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.17 KB | None | 0 0
  1. package application;
  2.  
  3. import java.awt.color.ICC_ColorSpace;import java.io.DataOutput;
  4. import java.util.Date;
  5. import java.util.Observable;
  6.  
  7. import javafx.application.Application;
  8. import javafx.collections.FXCollections;
  9. import javafx.collections.ObservableList;
  10. import javafx.stage.Stage;
  11. import javafx.scene.Scene;
  12. import javafx.geometry.Pos;
  13. import javafx.geometry.Orientation;
  14.  
  15. //----------------------------
  16. import javafx.scene.control.MenuBar;
  17. import javafx.scene.control.Menu;
  18. import javafx.scene.control.MenuItem;
  19. import javafx.scene.control.RadioMenuItem;
  20. import javafx.scene.control.CheckMenuItem;
  21. import javafx.scene.control.SeparatorMenuItem;
  22. //----------------------------
  23. import javafx.scene.control.ToolBar;
  24. import javafx.scene.control.Button;
  25. import javafx.scene.control.Label;
  26. import javafx.scene.control.TextField;
  27. import javafx.scene.control.CheckBox;
  28. import javafx.scene.control.RadioButton;
  29. import javafx.scene.control.ToggleButton;
  30. import javafx.scene.control.Separator;
  31. import javafx.scene.control.PasswordField;
  32. import javafx.scene.control.DatePicker;
  33. import javafx.scene.control.ColorPicker;
  34. import javafx.scene.control.ComboBox;
  35. import javafx.scene.control.Hyperlink;
  36. import javafx.scene.control.Slider;
  37. import javafx.scene.control.Spinner;
  38. import javafx.scene.control.SpinnerValueFactory;
  39. import javafx.scene.control.ScrollBar;
  40. import javafx.scene.control.ProgressBar;
  41. import javafx.scene.control.ProgressIndicator;
  42. //----------------------------
  43. import javafx.scene.control.SplitPane;
  44. import javafx.scene.control.TextArea;
  45. import javafx.scene.web.HTMLEditor;
  46. import javafx.scene.control.Accordion;
  47. import javafx.scene.control.TitledPane;
  48. import javafx.scene.paint.Color;
  49. import javafx.scene.shape.Rectangle;
  50. import javafx.scene.text.Text;
  51.  
  52. //----------------------------
  53. import javafx.scene.control.ToggleGroup;
  54. //----------------------------
  55. import javafx.scene.layout.BorderPane;
  56. import javafx.scene.layout.FlowPane;
  57. import javafx.scene.layout.GridPane;
  58. import javafx.scene.layout.HBox;
  59. import javafx.scene.layout.VBox;
  60. //----------------------------
  61. import javafx.scene.control.TabPane;
  62. import javafx.scene.control.Tab;
  63. import javafx.geometry.Side;
  64.  
  65. public class Main extends Application
  66. {
  67. private BorderPane root;
  68. private Scene scene;
  69.  
  70. private MenuBar menuBar;
  71. private ToolBar toolBar;
  72. private VBox controlBars;
  73. private HBox statusBar;
  74. private HBox enterFields;
  75.  
  76. private TabPane tabPane;
  77. private Tab tab_1;
  78. private Tab tab_2;
  79. private Tab tab_3;
  80. private Tab tab_4;
  81. private Tab tab_5;
  82. private Tab tab_6;
  83. private Tab tab_7;
  84. private Tab tab_8;
  85. private Tab tab_9;
  86. private Tab tab_10;
  87. private Accordion accordPane;
  88. @Override
  89. public void start(Stage stage)
  90. {
  91. createControlBars();
  92. createStatusBar();
  93. createEnterBox();
  94. createTabs();
  95. createAccordPane();
  96.  
  97. setupStage(stage);
  98. }
  99.  
  100. public static void main(String[] args)
  101. {
  102. launch(args);
  103. }
  104.  
  105. //=================================
  106. public void createControlBars()
  107. {
  108. createMenuBar();
  109. createToolBar();
  110.  
  111. controlBars = new VBox();
  112. controlBars.getChildren().add(menuBar);
  113. controlBars.getChildren().add(toolBar);
  114. }
  115.  
  116. public void createMenuBar()
  117. {
  118. //--- Menu Bar
  119. menuBar = new MenuBar();
  120.  
  121. //--- File Menu
  122. Menu fileMenu = new Menu("File");
  123.  
  124. MenuItem newMenuItem = new MenuItem("New...");
  125. MenuItem openMenuItem = new MenuItem("Open...");
  126. MenuItem saveMenuItem = new MenuItem("Save...");
  127. MenuItem exitMenuItem = new MenuItem("Exit");
  128.  
  129. saveMenuItem.setDisable(true);
  130.  
  131. fileMenu.getItems().add(newMenuItem);
  132. fileMenu.getItems().addAll
  133. (
  134. openMenuItem,
  135. saveMenuItem,
  136. new SeparatorMenuItem(),
  137. exitMenuItem
  138. );
  139.  
  140. //--- Options Menu
  141. Menu optionsMenu = new Menu("Options");
  142.  
  143. CheckMenuItem chk_item_1 = new CheckMenuItem("First");
  144. CheckMenuItem chk_item_2 = new CheckMenuItem("Second");
  145. CheckMenuItem chk_item_3 = new CheckMenuItem("Third");
  146.  
  147. optionsMenu.getItems().addAll(chk_item_1, chk_item_2, chk_item_3);
  148.  
  149. //--- Toggle Menu
  150. Menu settingsMenu = new Menu("Settings");
  151.  
  152. ToggleGroup tGroup1 = new ToggleGroup();
  153.  
  154. RadioMenuItem rd_item_1 = new RadioMenuItem("Red");
  155. RadioMenuItem rd_item_2 = new RadioMenuItem("Green");
  156. RadioMenuItem rd_item_3 = new RadioMenuItem("Blue");
  157.  
  158. rd_item_1.setToggleGroup(tGroup1);
  159. rd_item_2.setToggleGroup(tGroup1);
  160. rd_item_3.setToggleGroup(tGroup1);
  161.  
  162. rd_item_3.setSelected(true);
  163.  
  164. ToggleGroup tGroup2 = new ToggleGroup();
  165.  
  166. RadioMenuItem rd_item_4 = new RadioMenuItem("Hello");
  167. RadioMenuItem rd_item_5 = new RadioMenuItem("Hi");
  168. RadioMenuItem rd_item_6 = new RadioMenuItem("Welcome");
  169.  
  170. rd_item_4.setToggleGroup(tGroup2);
  171. rd_item_5.setToggleGroup(tGroup2);
  172. rd_item_6.setToggleGroup(tGroup2);
  173.  
  174. rd_item_4.setSelected(true);
  175.  
  176. settingsMenu.getItems().addAll(rd_item_1, rd_item_2, rd_item_3);
  177. settingsMenu.getItems().add(new SeparatorMenuItem());
  178. settingsMenu.getItems().addAll(rd_item_4, rd_item_5, rd_item_6);
  179.  
  180. //-------------------------------
  181.  
  182. menuBar.getMenus().add(fileMenu);
  183. menuBar.getMenus().add(optionsMenu);
  184. menuBar.getMenus().add(settingsMenu);
  185.  
  186. }
  187.  
  188. public void createToolBar()
  189. {
  190. toolBar = new ToolBar();
  191. Button btn_open = new Button("Open");
  192.  
  193. toolBar.getItems().add(btn_open);
  194. toolBar.getItems().add(new Button("Edit"));
  195. toolBar.getItems().add(new Button("Close"));
  196. }
  197.  
  198. public void createStatusBar()
  199. {
  200. statusBar = new HBox();
  201. Label statusText = new Label("Ready");
  202. statusBar.getChildren().add(statusText);
  203.  
  204. Date currentDate = new Date();
  205. Label dateText = new Label();
  206. dateText.setText(currentDate.toString());
  207.  
  208. statusBar.getChildren().add(dateText);
  209. }
  210.  
  211. public void createEnterBox()
  212. {
  213.  
  214. enterFields = new HBox();
  215. enterFields.setSpacing(20); //tarpai tarp elementu
  216.  
  217. Label enterLabel = new Label("Label :");
  218. TextField enterText = new TextField();
  219. Button enterButton = new Button("Set");
  220.  
  221. enterFields.getChildren().addAll(enterLabel, enterText, enterButton);
  222.  
  223. }
  224.  
  225. public VBox createCheckBoxPane(javafx.geometry.Pos position, double spacing)
  226. {
  227. VBox checkBoxPane = new VBox();
  228. {
  229. checkBoxPane.setAlignment(position);
  230. checkBoxPane.setSpacing(spacing);
  231.  
  232. CheckBox cb_1 = new CheckBox("Simple checkbox");
  233.  
  234.  
  235. CheckBox cb_2 = new CheckBox("Three-state checkbox");
  236. cb_2.setAllowIndeterminate(true);
  237. cb_2.setIndeterminate(true);
  238.  
  239. CheckBox cb_3 = new CheckBox("Disabled");
  240. cb_3.setSelected(true);
  241. cb_3.setDisable(true);
  242.  
  243. CheckBox cb_4 = new CheckBox ();
  244. cb_4.setText("New one");
  245.  
  246.  
  247. checkBoxPane.getChildren().addAll(cb_1, cb_2, cb_3, cb_4);
  248. }
  249. return checkBoxPane;
  250. }
  251.  
  252. public VBox createRadioBtnPane(javafx.geometry.Pos position, double spacing)
  253. {
  254. VBox radioBtnPane = new VBox();
  255. {
  256. radioBtnPane.setAlignment(position);
  257. radioBtnPane.setSpacing(spacing);
  258.  
  259. ToggleGroup tg_rb_box = new ToggleGroup();
  260. {
  261. RadioButton rb_1 = new RadioButton("Hello");
  262. rb_1.setToggleGroup(tg_rb_box);
  263.  
  264. RadioButton rb_2 = new RadioButton("Bye");
  265. rb_2.setToggleGroup(tg_rb_box);
  266. rb_2.setSelected(true);
  267.  
  268. RadioButton rb_3 = new RadioButton("Hidden");
  269. rb_3.setToggleGroup(tg_rb_box);
  270. rb_3.setVisible(false); //paslepti elementa
  271.  
  272. RadioButton rb_4 = new RadioButton("Disabled");
  273. rb_4.setToggleGroup(tg_rb_box);
  274. rb_4.setDisable(true);
  275.  
  276. radioBtnPane.getChildren().addAll(rb_1, rb_2, rb_3, rb_4);
  277. }
  278. }
  279. return radioBtnPane;
  280. }
  281.  
  282. public HBox createToggleBtnPane(javafx.geometry.Pos position, double spacing)
  283. {
  284. HBox toggleBtnPane = new HBox();
  285. {
  286. toggleBtnPane.setSpacing(spacing);
  287. toggleBtnPane.setAlignment(position);
  288.  
  289. ToggleGroup tg_bnt_grp = new ToggleGroup();
  290. {
  291. ToggleButton tb_1 = new ToggleButton("Windows");
  292. tb_1.setToggleGroup(tg_bnt_grp);
  293.  
  294. ToggleButton tb_2 = new ToggleButton("VxWorks");
  295. tb_2.setDisable(true); //setVisibale gali buti
  296. tb_2.setToggleGroup(tg_bnt_grp);
  297.  
  298. ToggleButton tb_3 = new ToggleButton("QIX");
  299. tb_3.setToggleGroup(tg_bnt_grp);
  300.  
  301. ToggleButton tb_4 = new ToggleButton("Xenix");
  302. tb_4.setToggleGroup(tg_bnt_grp);
  303.  
  304. ToggleButton tb_5 = new ToggleButton("Linux");
  305. tb_5.setToggleGroup(tg_bnt_grp);
  306.  
  307. ToggleButton tb_6 = new ToggleButton("Mac OS");
  308. tb_6.setToggleGroup(tg_bnt_grp);
  309.  
  310. toggleBtnPane.getChildren().addAll(tb_1, tb_2, tb_3, tb_4, tb_5, tb_6);
  311. }
  312.  
  313. }
  314. return toggleBtnPane;
  315. }
  316.  
  317. public VBox createSpecCtrlPane(javafx.geometry.Pos position, double spacing)
  318. {
  319. VBox specCtrlPane = new VBox();
  320. {
  321. specCtrlPane.setSpacing(spacing);
  322. specCtrlPane.setAlignment(position);
  323.  
  324. PasswordField password = new PasswordField();
  325. password.setMaxWidth(200);
  326. specCtrlPane.getChildren().add(password);
  327.  
  328. specCtrlPane.getChildren().add(new Separator());
  329.  
  330. DatePicker datePicker = new DatePicker();
  331. specCtrlPane.getChildren().add(datePicker);
  332.  
  333. specCtrlPane.getChildren().add(new Separator());
  334.  
  335. ColorPicker colorPicker = new ColorPicker();
  336. specCtrlPane.getChildren().add(colorPicker);
  337.  
  338. specCtrlPane.getChildren().add(new Separator());
  339.  
  340. Hyperlink hyperlink = new Hyperlink("Go to the link...");
  341. specCtrlPane.getChildren().add(hyperlink);
  342.  
  343. specCtrlPane.getChildren().add(new Separator());
  344.  
  345. Slider slider = new Slider();
  346. slider.setMaxWidth(200);
  347. specCtrlPane.getChildren().add(slider);
  348.  
  349. specCtrlPane.getChildren().add(new Separator());
  350.  
  351. ScrollBar scrollBar = new ScrollBar();
  352. //scrollBar.setMaxWidth(300);
  353. scrollBar.setOrientation(Orientation.VERTICAL);
  354. specCtrlPane.getChildren().add(scrollBar);
  355.  
  356.  
  357. ProgressBar progressBar = new ProgressBar();
  358. progressBar.setMaxWidth(200);
  359. specCtrlPane.getChildren().add(progressBar);
  360.  
  361. specCtrlPane.getChildren().add(new Separator());
  362.  
  363. ProgressIndicator progressIndicator = new ProgressIndicator();
  364. specCtrlPane.getChildren().add(progressIndicator);
  365. }
  366. return specCtrlPane;
  367. }
  368.  
  369. public SplitPane createEditorsPane(javafx.geometry.Pos position, double spacing)
  370. {
  371. SplitPane editorsPane = new SplitPane();
  372. {
  373. editorsPane.setOrientation(Orientation.VERTICAL);
  374. TextArea textArea = new TextArea();
  375.  
  376. HTMLEditor htmlEditor = new HTMLEditor();
  377.  
  378. editorsPane.setDividerPosition(0,5);
  379. editorsPane.getItems().addAll(textArea, htmlEditor);
  380. }
  381. return editorsPane;
  382. }
  383.  
  384. public void createAccordPane()
  385. {
  386. accordPane = new Accordion();
  387. {
  388. TitledPane tpan_1 = new TitledPane("Button Node", new Button("Button"));
  389. TitledPane tpan_2 = new TitledPane("Script Node", new Text("Button"));
  390. TitledPane tpan_3 = new TitledPane("Rect Node", new Rectangle(120, 50, Color.CORAL));
  391.  
  392. accordPane.getPanes().addAll(tpan_1, tpan_2, tpan_3);
  393.  
  394. }
  395. //---------Check Boxes ----------------
  396. TitledPane tpan_4 = new TitledPane("VBox(Check Box) Node", createCheckBoxPane(Pos.TOP_LEFT, 10));
  397. accordPane.getPanes().add(tpan_4);
  398.  
  399. //------------Radio Buttons------------
  400. TitledPane tpan_5 = new TitledPane("VBox(Radio Btn) Node", createRadioBtnPane(Pos.TOP_LEFT, 10));
  401. accordPane.getPanes().add(tpan_5);
  402.  
  403. //------------
  404. //accordPane.setMinSize(10, 10);;//visos funkcijos kaip ir visur(visable, disable ir t.t.)
  405. }
  406.  
  407. public VBox createComplexCtrlPane(javafx.geometry.Pos position, double spacing) {
  408. VBox comboCtrlPane = new VBox();
  409. {
  410. comboCtrlPane.setSpacing(spacing);
  411. comboCtrlPane.setAlignment(position);
  412.  
  413. HBox comboBoxes = new HBox();
  414. {
  415. comboBoxes.setSpacing(spacing);
  416.  
  417. ComboBox<String> ch_1 = new ComboBox<String>();
  418. ch_1.getItems().addAll("Dog", "Cat", "Horse", "Cow");
  419.  
  420. ComboBox<Integer> ch_2 = new ComboBox<Integer>();
  421. ch_2.getItems().addAll(1, 2, 3, 4, 5, 6);
  422.  
  423. ComboBox<Boolean> ch_3 = new ComboBox<Boolean>();
  424. ch_3.getItems().addAll(true,false,true, true,false);
  425.  
  426. comboBoxes.getChildren().addAll(ch_1, ch_2, ch_3);
  427. }
  428. comboCtrlPane.getChildren().add(comboBoxes);
  429.  
  430. comboCtrlPane.getChildren().add(new Separator());
  431.  
  432. HBox spinners = new HBox();
  433. {
  434. spinners.setSpacing(spacing);
  435.  
  436. //------ Value Factories ---
  437. SpinnerValueFactory<Integer> svf_int = new SpinnerValueFactory.IntegerSpinnerValueFactory(1, 99);
  438. SpinnerValueFactory<Double> svf_double = new SpinnerValueFactory.DoubleSpinnerValueFactory(0.0, 1.0,0.5,0.01);
  439. ObservableList<String> cities = FXCollections.observableArrayList("London" , "Paris" , "Berlin", "Warsaw","Vilnius" );
  440.  
  441. SpinnerValueFactory<String> svf_str = new SpinnerValueFactory.ListSpinnerValueFactory<String>(cities);
  442.  
  443. //== Spinners --
  444. Spinner<String> sp_1 = new Spinner<>();
  445. sp_1.setValueFactory(svf_str);
  446.  
  447. Spinner<Integer> sp_2 = new Spinner<>();
  448. sp_2.setValueFactory(svf_int);
  449. sp_2.getStyleClass().add(Spinner.STYLE_CLASS_ARROWS_ON_RIGHT_HORIZONTAL);
  450. Spinner<String> sp_3 = new Spinner<>();
  451. sp_3.setValueFactory(svf_str);
  452. sp_3.getStyleClass().add(Spinner.STYLE_CLASS_SPLIT_ARROWS_HORIZONTAL);
  453.  
  454. Spinner<Double> sp_4 = new Spinner<>();
  455. sp_4.setValueFactory(svf_double);
  456. sp_4.getStyleClass().add(Spinner.STYLE_CLASS_ARROWS_ON_LEFT_VERTICAL);
  457.  
  458. spinners.getChildren().addAll(sp_1,sp_2,sp_3,sp_4);
  459. comboBoxes.getChildren().add(spinners);
  460. }
  461.  
  462. }
  463. return comboCtrlPane;
  464. }
  465. //------- Flow / Grid layouts ----------
  466. public SplitPane createLayoutsPane(javafx.geometry.Pos position, double spacing) {
  467. SplitPane layoutsPane = new SplitPane();
  468. {
  469. layoutsPane.setOrientation(Orientation.HORIZONTAL);
  470. layoutsPane.setDividerPositions(0.5);
  471. layoutsPane.getItems().addAll(createFlowPane(), createGridPane());
  472. }
  473. return layoutsPane;
  474. }
  475. // ===== FLow Pane====
  476. public FlowPane createFlowPane() {
  477. FlowPane flow = new FlowPane(Orientation.HORIZONTAL);
  478. {
  479. flow.setVgap(4);
  480. flow.setHgap(4);
  481.  
  482. flow.setPrefWrapLength(210);
  483. Button btn = new Button();
  484. for(int i=0;i<10;i++) {
  485. btn = new Button("Button "+ i);
  486. btn.setPrefSize(100, 50);
  487. flow.getChildren().add(btn);
  488. }
  489. TextArea area = new TextArea();
  490. for(int i=0;i<10;i++) {
  491. area = new TextArea("Text "+ i);
  492. area.setPrefSize(100, 50);
  493. flow.getChildren().add(area);
  494. }
  495.  
  496. }
  497. return flow;
  498. }
  499. //==== Grid Pane ======
  500. public GridPane createGridPane() {
  501. GridPane grid = new GridPane();
  502. {
  503.  
  504.  
  505. }
  506. return grid;
  507.  
  508. }
  509. public void setupStage(Stage stage)
  510. {
  511. stage.setTitle("The Main Window");
  512.  
  513. stage.setMinHeight(100);
  514. //stage.setMaxHeight(600);
  515.  
  516. stage.setMinWidth(100);
  517. //stage.setMaxWidth(1000);
  518. //--------------------------
  519. root = new BorderPane();
  520. scene = new Scene(root,600,500);
  521.  
  522. root.setTop(controlBars);
  523. root.setBottom(statusBar);
  524. root.setCenter(tabPane);
  525. root.setRight(accordPane);
  526. //--------------------------
  527. stage.setScene(scene);
  528. stage.show();
  529.  
  530.  
  531. }
  532.  
  533. public void createTabs()
  534. {
  535. tabPane = new TabPane();
  536. tabPane.setSide(Side.TOP);
  537.  
  538. tab_1 = new Tab();
  539. tab_1.setText("Standart");
  540. tab_1.setContent(enterFields);
  541.  
  542. tab_2 = new Tab("Check Boxes");
  543. tab_2.setContent(createCheckBoxPane(Pos.TOP_CENTER, 10)); //nustato vieta lange
  544.  
  545. tab_3 = new Tab("Radio Buttons");
  546. tab_3.setContent(createRadioBtnPane(Pos.CENTER_LEFT, 10));
  547.  
  548. tab_4 = new Tab("Toggle Buttons");
  549. tab_4.setContent(createToggleBtnPane(Pos.CENTER, 0));
  550.  
  551. tab_5 = new Tab("Special Controls");
  552. tab_5.setContent(createSpecCtrlPane(Pos.TOP_LEFT, 10));
  553.  
  554. tab_6 = new Tab("Complex Controls");
  555. tab_6.setContent(createComplexCtrlPane(Pos.TOP_CENTER, 12));
  556.  
  557. tab_7 = new Tab("Editors");
  558. tab_7.setContent(createEditorsPane(Pos.TOP_RIGHT, 10));
  559.  
  560. tab_8 = new Tab("Flow/Grid Layouts");
  561. tab_8.setContent(createLayoutsPane(Pos.TOP_LEFT,10));
  562.  
  563. tab_9 = new Tab("Scroll Pane");
  564.  
  565.  
  566. tabPane.getTabs().addAll(tab_1, tab_2, tab_3, tab_4, tab_5, tab_6, tab_7, tab_8, tab_9);
  567. }
  568.  
  569.  
  570. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement