Как задать координаты Rectangle2D из текстового поля? - Java

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

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

Вот и вопрос. Сам прямоугольник рисуется в панеле SPanel, в SPanel2 текстовое поле из которого введенная цифра прибавляется к координатам, в итоге прямоугольник должен перерисовываться по новым координатам, а нет как был так и остается исходя из ранее заданных координат как сделать чтобы перерисовывался по новым координатам?
Листинг программы
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import java.awt.BorderLayout;
  4. import java.awt.Color;
  5. import java.awt.Dimension;
  6. import java.awt.FlowLayout;
  7. import java.awt.Font;
  8. import java.awt.GridBagLayout;
  9. import javax.swing.JLabel;
  10. import javax.swing.JPanel;
  11. import javax.swing.UIManager;
  12. import javax.swing.border.Border;
  13. import java.util.*;
  14. import java.util.Scanner;
  15. import java.io.*;
  16. import javax.swing.*;
  17. import javax.swing.JFrame.*;
  18. import javax.swing.JTextField.*;
  19. import java.awt.BorderLayout;
  20. import java.awt.FlowLayout;
  21. import java.nio.*;
  22. import java.nio.channels.*;
  23. import java.nio.file.*;
  24. import java.net.*;
  25. import java.text.*;
  26. import javax.swing.text.*;
  27. import java.awt.geom.*;
  28.  
  29. public class drc extends JFrame {
  30. public static double leftX;
  31. public static double topY;
  32. public static double width;
  33. public static double height;
  34. class DrawComponent extends JComponent
  35. {
  36. private static final int DEFAULT_WIDTH = 300;
  37. private static final int DEFAULT_HEIGHT = 300;
  38. public void paintComponent(Graphics g)
  39. {
  40. Graphics2D g2 = (Graphics2D) g;
  41. double leftX = 5;
  42. double topY = 15;
  43. double width = 20;
  44. double height = 20;
  45. Rectangle2D rect2 =
  46. new Rectangle2D.Double(leftX, topY, width, height);
  47. g2.draw(rect2);
  48. } }
  49. drc() {
  50. JFrame MainFrame = new JFrame("");
  51. MainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  52. MainFrame.setSize(600, 400);
  53. JPanel MainPanel = new JPanel();
  54. MainPanel.setBorder(BorderFactory.createTitledBorder("MainPanel"));
  55. MainPanel.setLayout(new BoxLayout(MainPanel, BoxLayout.X_AXIS));
  56. JPanel SPanel = new JPanel();
  57. SPanel.setBorder(BorderFactory.createLineBorder(Color.RED, 3));
  58. SPanel.setLayout(new BorderLayout());
  59. JPanel SPanel2 = new JPanel();
  60. SPanel2.setBorder(BorderFactory.createTitledBorder("Текстовое поле"));
  61. SPanel2.setLayout(new BorderLayout());
  62. MainPanel.add(SPanel);
  63. MainPanel.add(SPanel2);
  64. SPanel.add(new DrawComponent());
  65. JTextField STextField = new JTextField("1", 10);
  66. STextField.addKeyListener(new KeyListener() {
  67. public void keyPressed(KeyEvent ea) {
  68. }
  69. public void keyReleased(KeyEvent ea) {
  70. String Sstr = STextField.getText();
  71. Double Sdo = Double.valueOf(Sstr);
  72. leftX = 5 + Sdo;
  73. topY = 15 + Sdo;
  74. width = 20 + Sdo;
  75. height = 20 + Sdo;
  76. SPanel.update(SPanel.getGraphics());
  77. }
  78. public void keyTyped(KeyEvent ea) {
  79. }
  80. });
  81. SPanel2.add(STextField);
  82. MainFrame.add(MainPanel);
  83. MainFrame.setVisible(true);
  84. }
  85. public static void main(String args[]) {
  86. SwingUtilities.invokeLater(new Runnable() {
  87. public void run() {
  88. new drc();
  89. }
  90. });
  91. }
  92. }

Решение задачи: «Как задать координаты Rectangle2D из текстового поля?»

textual
Листинг программы
  1. public class drc extends JFrame {
  2.  
  3. double leftX = 5;
  4. double topY = 15;
  5. double width = 20;
  6. double height = 20;
  7.  
  8. class DrawComponent extends JComponent
  9. {
  10. private static final int DEFAULT_WIDTH = 300;
  11. private static final int DEFAULT_HEIGHT = 300;
  12.  
  13. public void paintComponent(Graphics g)
  14. {
  15. Graphics2D g2 = (Graphics2D) g;
  16.  
  17.  
  18. Rectangle2D rect2 =
  19. new Rectangle2D.Double(leftX, topY, width, height);
  20. g2.draw(rect2);
  21. } }
  22.  
  23. drc() {

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


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

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

12   голосов , оценка 4.083 из 5

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

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

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