Как добавить Text при добавлении на Canvas - Java

Узнай цену своей работы

Формулировка задачи:

делаю объект текста и хочу разместить эту строку на холсте,
Листинг программы
  1. gc.strokeLine(50, 80, 200, 80);
  2. Text t = new Text();
  3. t.setText("Начало линии");
  4. gc.fillText(" " +t, 50, 75);
проблема в том что кроме значения setText еще выводятся лишние данные в виде координат, центрирования, шрифта еще неизвестно чего, как убрать все это лишнее весь код
Листинг программы
  1. import javafx.application.*;
  2. import javafx.application.Application;
  3. import javafx.stage.*;
  4. import javafx.scene.*;
  5. import javafx.scene.layout.*;
  6. import javafx.scene.control.*;
  7. import javafx.scene.effect.*;
  8. import javafx.scene.paint.*;
  9. import javafx.scene.shape.*;
  10. import javafx.scene.text.*;
  11. import javafx.geometry.*;
  12. import javafx.event.*;
  13. import javafx.scene.canvas.*;
  14. import java.awt.event.InputEvent;
  15. import javafx.scene.input.KeyEvent;
  16. import javafx.scene.layout.StackPane;
  17. import javafx.stage.Stage;
  18. import javafx.scene.shape.*;
  19. import javafx.scene.Group;
  20. import javafx.scene.Scene;
  21. import javafx.scene.layout.VBox;
  22. import javafx.scene.paint.Color;
  23. import javafx.event.EventHandler;
  24. import javafx.scene.input.InputEvent.*;
  25. import javafx.scene.Node;
  26. import javafx.scene.control.ListView;
  27. import javafx.scene.control.TextField;
  28. import javafx.scene.effect.DropShadow;
  29. import javafx.scene.effect.PerspectiveTransform;
  30. import javafx.stage.Stage;
  31. import javafx.collections.FXCollections;
  32. import javafx.collections.ListChangeListener;
  33. import javafx.scene.input.KeyEvent; // пакет обработки нажатий с клавы javafx
  34. import javafx.util.converter.*;
  35. import javafx.scene.input.*;
  36. import java.util.Scanner;
  37. import java.io.*;
  38. import java.nio.*;
  39. import java.nio.channels.*;
  40. import java.nio.file.*;
  41. import java.net.*;
  42. import java.text.*;
  43. import javafx.util.*;
  44. import java.util.Timer;
  45. import java.util.regex.Pattern;
  46. import javafx.scene.text.*;
  47. import javafx.fxml.FXML;
  48. import javafx.scene.canvas.*;
  49.  
  50. public class Ca extends Application {
  51. private void Shapes(GraphicsContext gc) {
  52. gc.strokeLine(50, 80, 200, 80);
  53. Text t = new Text();
  54. t.setText("Начало линии");
  55. gc.fillText(" " +t, 50, 75);
  56. }
  57. GraphicsContext gc;
  58. public static void main(String[] args) {
  59. launch(args);
  60. }
  61. public void start(Stage myStage) throws Exception {
  62. myStage.setTitle("Title");
  63. AnchorPane rootPane = new AnchorPane();
  64. Scene myScene = new Scene(rootPane, 700, 400);
  65. myStage.setScene(myScene);
  66. myStage.setMaxWidth(1200.0);
  67. myStage.setMaxHeight(900.0);
  68. myStage.setMinWidth(600.0);
  69. myStage.setMinHeight(400.0);
  70. // Canvas
  71. Canvas myCanvas = new Canvas(500, 360);
  72. gc = myCanvas.getGraphicsContext2D();
  73. gc.strokeRect(2, 2, myCanvas.getWidth() - 3, myCanvas.getHeight() - 3);
  74. Shapes(gc);
  75.  
  76. // привязки холста
  77. AnchorPane.setLeftAnchor(myCanvas, 40.0);
  78. AnchorPane.setTopAnchor(myCanvas, 20.0);
  79. rootPane.getChildren().add(myCanvas);
  80. myStage.show();
  81. }
  82. }
прикладываю скрин результата

Решение задачи: «Как добавить Text при добавлении на Canvas»

textual
Листинг программы
  1.         gc.fillText(" " + t.getText(), 50, 75);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут