Нарисовать линию на игровом поле - Java

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

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

Задание: нарисовать на игровом поле линию(потом переделаю на то что нужно) при клике Проблема: поле рисую на ура, а вот линия при клике не рисуется...
Листинг программы
  1. import java.awt.*;
  2. import java.awt.event.MouseAdapter;
  3. import java.awt.event.MouseEvent;
  4. import javax.swing.*;
  5. public class Game extends JFrame{
  6. public static final int n=10;
  7. public static void main() {
  8. JFrame frame=new JFrame("Test");
  9. frame.setSize(305,330);
  10. frame.setVisible(true);
  11. frame.setResizable(false);
  12. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  13. JPanel contentPane = new JPanel(){//это рисует
  14. Graphics2D g2;
  15. protected void paintComponent(Graphics g){
  16. super.paintComponent(g);
  17. g2=(Graphics2D)g;
  18. for (int i=0;i<frame.getWidth();i=i+(frame.getWidth()-5)/n)
  19. {
  20. g2.setColor(Color.BLACK);
  21. g2.drawLine(i,0, i, frame.getHeight());
  22. }
  23. for (int i=0;i<frame.getHeight();i=i+(frame.getHeight()-30)/n)
  24. {
  25. g2.setColor(Color.BLACK);
  26. g2.drawLine(0,i, frame.getWidth(),i);
  27. }
  28. }
  29. };
  30. frame.addMouseListener(new MouseAdapter() {
  31. @Override
  32. public void mouseClicked(MouseEvent e) {
  33. super.mouseClicked(e);
  34. System.out.print(e.getX() / 30);
  35. System.out.println((e.getY() / 30) - 1);
  36. JPanel X = new JPanel(){//а вот это нет
  37. Graphics2D g2;
  38. protected void paintComponent(Graphics g){
  39. super.paintComponent(g);
  40. g2=(Graphics2D)g;
  41. g2.setColor(Color.RED);
  42. g2.drawLine(100,100,200,200);
  43. }
  44. };
  45. contentPane.add(X);
  46. }
  47. });
  48. frame.setContentPane(contentPane);
  49. }
  50. }

Решение задачи: «Нарисовать линию на игровом поле»

textual
Листинг программы
  1. JPanel contentPane = new JPanel(){
  2.             Graphics2D g2;
  3.             @Override
  4.             protected void paintComponent(Graphics g){
  5.                 super.paintComponent(g);
  6.                 g2=(Graphics2D)g;
  7.  
  8.                 for (int i=0;i<frame.getWidth();i=i+(frame.getWidth()-5)/n)
  9.                 {
  10.                     g2.setColor(Color.BLACK);
  11.                     g2.drawLine(i,0, i, frame.getHeight());
  12.                 }
  13.                 for (int i=0;i<frame.getHeight();i=i+(frame.getHeight()-30)/n)
  14.                 {
  15.                     g2.setColor(Color.BLACK);
  16.                     g2.drawLine(0,i, frame.getWidth(),i);
  17.                 }
  18.                 addMouseListener(new MouseAdapter() {
  19.                     @Override
  20.                     public void mouseClicked(MouseEvent e) {
  21.                         super.mouseClicked(e);
  22.                         lines.add(new Line2D.Float(100, 100, 200, 200));
  23.                         for (int i = 0; i < lines.size(); i++) {
  24.                             g2.setColor(Color.red);
  25.                             g2.draw(lines.get(i));
  26.                         }
  27.                         repaint();
  28.                     }
  29.                 });
  30.             }
  31.         };

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


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

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

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

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

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

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