Как разместить квадрат по середине окна - Java

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

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

Листинг программы
  1. import javax.swing.*;
  2. public class GUI extends JFrame {
  3. public static final int WIDTH = 500;
  4. public static final int HEIGHT= 400;
  5. public GUI(String s) {
  6. setTitle(s);
  7. setSize(WIDTH, HEIGHT);
  8. MyPanel panel = new MyPanel();
  9. add(panel);
  10. }
  11. }
Листинг программы
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.geom.Rectangle2D;
  4. public class MyPanel extends JPanel {
  5. public static final double x1 = 100;
  6. public static final double WIDTH = (GUI.WIDTH - x1) - x1;
  7. public static final double y1 = 100;
  8. public static final double HEIGHT = (GUI.HEIGHT - y1)-y1;
  9. public MyPanel() {
  10. }
  11. protected void paintComponent(Graphics g) {
  12. super.paintComponent(g);
  13. Graphics2D g2 = (Graphics2D) g;
  14. Rectangle2D rect = new Rectangle2D.Double(x1,y1,WIDTH,HEIGHT);
  15. g2.setColor(Color.GREEN);
  16. g2.fill(rect);
  17. }
  18. }
Подскажите, пожалуйста как разместить квадрат так, чтобы он был по середине окна
Листинг программы
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.geom.Rectangle2D;
  4. public class MyPanel extends JPanel {
  5. public static final int WIDTH2 = 200;
  6. public static final int HEIGHT2 = 200;
  7. public MyPanel() {
  8. }
  9. protected void paintComponent(Graphics g) {
  10. super.paintComponent(g);
  11. Graphics2D g2 = (Graphics2D) g;
  12. Rectangle2D rect = new Rectangle2D.Double((GUI.WIDTH - WIDTH2) / 2, (GUI.HEIGHT - HEIGHT2) / 2, WIDTH2, HEIGHT2);
  13. g2.setColor(Color.GREEN);
  14. g2.fill(rect);
  15. }
  16. }
Так тоже не получается, хотя по идее оно должно быть посредине..

Решение задачи: «Как разместить квадрат по середине окна»

textual
Листинг программы
  1.     class MyPanel extends JPanel {
  2.  
  3.         public static final int WIDTH = 300;
  4.         public static final int HEIGHT = 200;
  5.  
  6.         protected void paintComponent(Graphics g) {
  7.             super.paintComponent(g);
  8.             g.setColor(Color.GREEN);
  9.             int leftMargin = (getWidth() - WIDTH) / 2;
  10.             int topMargin = (getHeight() - HEIGHT) / 2;
  11.             g.fillRect(leftMargin, topMargin, WIDTH, HEIGHT);
  12.         }
  13.     }

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


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

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

10   голосов , оценка 3.6 из 5

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

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

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