Advertisement
Guest User

Untitled

a guest
Feb 25th, 2020
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.39 KB | None | 0 0
  1. package sample;
  2.  
  3. import javafx.application.Application;
  4. import javafx.event.ActionEvent;
  5. import javafx.fxml.FXMLLoader;
  6. import javafx.geometry.Insets;
  7. import javafx.scene.Group;
  8. import javafx.scene.Parent;
  9. import javafx.scene.Scene;
  10. import javafx.scene.control.*;
  11. import javafx.scene.effect.DropShadow;
  12. import javafx.scene.layout.GridPane;
  13. import javafx.scene.layout.Pane;
  14. import javafx.scene.layout.StackPane;
  15. import javafx.scene.paint.Color;
  16. import javafx.scene.text.Font;
  17. import javafx.scene.text.FontWeight;
  18. import javafx.scene.text.Text;
  19. import javafx.stage.Stage;
  20.  
  21.  
  22.  
  23. public class Main extends Application {
  24.  
  25. Pane root_pane = new Pane(); //группа для узлов сцены
  26. Group group = new Group(); //группа для узлов сцены
  27.  
  28. //===== элементы управления
  29. Slider slider; //слайдер
  30. Button btn_inc; //кнопка инкремент
  31. Button btn_dec; //кнопка декремент
  32.  
  33. //====== RadioButton
  34. RadioButton rb_1; //1
  35. RadioButton rb_2; //2
  36. RadioButton rb_3; //3
  37. //====== CheckBox
  38. CheckBox cb_1; //1
  39. CheckBox cb_2; //2
  40. CheckBox cb_3; //3
  41.  
  42. //====== TextArea
  43. TextArea textArea; //дисплей
  44.  
  45. //===== графика
  46. DropShadow dropShadow; //тень
  47. Text text;
  48. //====== счетчик
  49. int counter = 0;
  50. int MAX_VAL = 50; //максимальное значение счетчика
  51.  
  52. // ###############################################################
  53. // Создание узлов (nodes)
  54. // ###############################################################
  55. // ===============================================================
  56. // Тень
  57. //===============================================================
  58. private void Shadow() {
  59. dropShadow = new DropShadow();
  60. //создать объект тень
  61. dropShadow.setRadius(5.0);
  62. //закругление углов тени
  63. dropShadow.setOffsetX(5.0);
  64. //смещение тени по Х и Y
  65. dropShadow.setOffsetY(5.0);
  66. dropShadow.setColor(Color.GRAY); //цвет тени
  67. }
  68.  
  69. //===============================================================
  70. // Графика
  71. //===============================================================
  72. private void CreateGraphNodes() {
  73. //====== создать тень для узлов сцены
  74. Shadow();
  75. //====== применить эффект для всех узлов группы
  76. //для класса Pane тень не устанавливается, поэтому в Pane помещаем Group
  77. group.setEffect(dropShadow);
  78. //=== надпись
  79. text = new Text();
  80. //создать текст
  81. text.setFont(Font.font("Arial", FontWeight.BOLD, 16));
  82. text.setFill(Color.BLUE); //цвет текста
  83. }
  84.  
  85. //===============================================================
  86. // Элементы управления
  87. //===============================================================
  88. private void CreateControlNodes() {
  89. //====== RadioButton
  90. ToggleGroup tg = new ToggleGroup();
  91. //группа для RadioButton
  92. rb_1 = new RadioButton("RadioButton 1");
  93. rb_1.setToggleGroup(tg);
  94.  
  95. rb_2 = new RadioButton("RadioButton 2");
  96. rb_2.setToggleGroup(tg);
  97. rb_2.setSelected(true);
  98.  
  99. rb_3 = new RadioButton("RadioButton 3");
  100. rb_3.setToggleGroup(tg);
  101.  
  102. //====== CheckBox
  103. cb_1 = new CheckBox("CheckBox 1");
  104. cb_2 = new CheckBox("CheckBox 2");
  105. cb_3 = new CheckBox("CheckBox 3");
  106.  
  107. //====== кнопка инкремент
  108. btn_inc = new Button();
  109. //создать кнопку
  110. btn_inc.setText("Увеличить");
  111. //надпись на кнопке
  112. btn_inc.setLayoutX(120);
  113. //расположение кнопки на сцене
  114. btn_inc.setLayoutY(200);
  115. btn_inc.setTextFill(Color.BROWN);
  116. btn_inc.setFont(Font.font("Arial", FontWeight.BOLD, 12));
  117.  
  118.  
  119. //====== кнопка декремент
  120. btn_dec = new Button();
  121. //создать кнопку
  122. btn_dec.setText("Уменьшить");
  123. //надпись на кнопке
  124. btn_dec.setLayoutX(20);
  125. //расположение кнопки на сцене
  126. btn_dec.setLayoutY(200);
  127. btn_dec.setTextFill(Color.BROWN);
  128. btn_dec.setFont(Font.font("Arial", FontWeight.BOLD, 12));
  129.  
  130.  
  131. //====== дисплей
  132. textArea = new TextArea();
  133. textArea.setLayoutX(290);
  134. textArea.setLayoutY(20);
  135. textArea.setPrefSize(200, 150);
  136. textArea.setText("Лабораторная работа № 1");
  137. textArea.setWrapText(true);
  138.  
  139.  
  140. //====== Слайдер
  141. slider = new Slider(); //создать слайдер
  142. slider.setLayoutX(290); //координаты
  143. slider.setLayoutY(200);
  144. slider.setPrefWidth(200); //длина слайдера
  145. slider.setBlockIncrement(1.0); //единица изменения
  146. slider.setMajorTickUnit(10); //большие деления на шкале
  147. slider.setMinorTickCount(5); //малые деления на шкале
  148. slider.setMax(MAX_VAL); //максимальное значение
  149. slider.setMin(1); //минимальное значение
  150. slider.setShowTickLabels(true); //показать значения шкалы
  151. slider.setShowTickMarks(true); //показать деления шкалы
  152. slider.setSnapToTicks(false); //не привязывать к делениям
  153.  
  154. //=== инициализация слайдера
  155. slider.setValue(counter); //установить ползунок слайдера
  156.  
  157. //====== скомпоновать сцену
  158. GridPane gp = new GridPane(); //создать компоновщик
  159. gp.setHgap(50); //шаг по горизонтали
  160. gp.setVgap(10); //шаг по верткали
  161. gp.setPadding(new Insets(25, 0, 0, 20)); //отступы от края окна
  162. //====== поместить объекты в компоновщик. (узел, столбец, строка
  163. gp.add(rb_1, 0, 0); //RadioButton
  164. gp.add(rb_2, 0, 1);
  165. gp.add(rb_3, 0, 2);
  166.  
  167. gp.add(cb_1, 1, 0); //CheckBox
  168. gp.add(cb_2, 1, 1);
  169. gp.add(cb_3, 1, 2);
  170.  
  171. gp.add(text, 0, 8); //текст
  172.  
  173. //====== поместить все узлы в корень
  174. group.getChildren().addAll(gp, slider, btn_dec, btn_inc, textArea);
  175. root_pane.getChildren().addAll(group);
  176. //====== отобразить установки параметров
  177. toDisplay(counter);
  178. }
  179.  
  180. //===============================================================
  181. // Обработчики событий
  182. // ===============================================================
  183. private void onAction() {
  184.  
  185. //====== Button
  186. //=== обработчик события нажатия кнопки
  187. btn_inc.setOnAction((ActionEvent event) -> {
  188. if (counter < MAX_VAL) {
  189. counter += 1; //увеличить счетчик
  190. }
  191. toDisplay(counter); //отобразить значение счетчика
  192. });
  193.  
  194. //=== обработчик события нажатия кнопки
  195. btn_dec.setOnAction((ActionEvent event) -> {
  196. if (counter > 1) {
  197. counter -= 1; //уменьшить толщину линии
  198. }
  199. toDisplay(counter); //отобразить значение счетчика
  200. });
  201.  
  202. //====== Slider
  203. //=== обработчик события ползунка слайдера
  204. slider.valueProperty().addListener((observable) -> {
  205. if (slider.isValueChanging()) {
  206. counter = (int) slider.getValue(); //получить значение
  207. // ползунка
  208. toDisplay(counter);
  209. }
  210. });
  211.  
  212. cb_1.setOnAction((ActionEvent event) -> {
  213. if(cb_1.isSelected()){
  214. textArea.appendText("\nУстановлен CheckBox 1");
  215. }else{
  216. textArea.appendText("\nСнят CheckBox 1");
  217. }
  218. });
  219.  
  220. //=== обработчик события CheckBox_2
  221. cb_2.setOnAction((ActionEvent event) -> {
  222. if(cb_2.isSelected()){
  223. textArea.appendText("\nУстановлен CheckBox 2");
  224. } else {
  225. textArea.appendText("\nСнят CheckBox 2");
  226. }
  227. });
  228.  
  229. //=== обработчик события CheckBox_3
  230. cb_3.setOnAction((ActionEvent event) -> {
  231. if(cb_3.isSelected()){
  232. textArea.appendText("\nУстановлен CheckBox 3");
  233. } else {
  234. textArea.appendText("\nСнят CheckBox 3");
  235. }
  236. });
  237.  
  238. // ====== RadioButton
  239. //=== обработчик события RadioButton_1
  240. rb_1.setOnAction((ActionEvent t) -> {
  241. textArea.appendText("\nУстановлен RadioButton 1");
  242. });
  243.  
  244. //=== обработчик события RadioButton_2
  245. rb_2.setOnAction((ActionEvent t) -> {
  246. textArea.appendText("\nУстановлен RadioButton 2");
  247. });
  248.  
  249. //=== обработчик события RadioButton_3
  250. rb_3.setOnAction((ActionEvent t) -> {
  251. textArea.appendText("\nУстановлен RadioButton 3");
  252. });
  253. }
  254.  
  255.  
  256. //===============================================================
  257. // Вывод значения счетчика
  258. // ===============================================================
  259. public void toDisplay(double val) {
  260. String s = Integer.toString(counter);
  261. text.setText("Счетчик: " + s); //значение счетчика
  262. textArea.appendText("\nСчетчик: " + s); //значение счетчика
  263. slider.setValue(counter); //установить ползунок слайдера
  264. }
  265.  
  266. //===============================================================
  267. // Начало
  268. // ===============================================================
  269. @Override
  270. public void start(Stage stage) {
  271. //====== заголовок окна
  272. stage.setTitle("Лабораторная работа №1");
  273. stage.setResizable(false);
  274. //фиксированный размер
  275. //====== создать узлы сцены c графикой
  276. CreateGraphNodes();
  277.  
  278. //====== создать узлы сцены c элементами управления
  279. CreateControlNodes();
  280. //====== создать обработчики событий
  281. onAction();
  282. root_pane.setOpacity(0.50);
  283.  
  284. //====== создать сцену с размерами и цветом фона
  285. Scene scene = new Scene(root_pane, 500, 250, Color.TRANSPARENT);
  286.  
  287. //====== поместить сцену в окно
  288. stage.setScene(scene);
  289.  
  290. //====== отобразить окно
  291. stage.show(); }
  292.  
  293. //===============================================================
  294. // Точка входа в программу (запускает метод start)
  295. // ===============================================================
  296. public static void main(String[] args) {
  297. launch(args);
  298. }
  299. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement