Ошибка в отрисовке объекта - Java
Формулировка задачи:
Чтобы было проще понять: это рисование крестов в крестиках-ноликах. Проблема следующая: при нажатии на верхнюю левую область, происходит отрисовка в ней и в области среднего ряда 1 слева клетки. Я подозреваю, что ошибка в координатах.
import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; public class PressingB implements MouseListener { static boolean b1; static boolean b2; static boolean b3; static boolean b4; static boolean b5; static boolean b6; @Override public void mouseClicked(MouseEvent e) { Graphics g = Game.p.getGraphics(); if((e.getX()>99&&e.getX()<140&&e.getY()>80&&e.getY()<119)&&b1!=true){ b1=true; Draw1(g); } if((e.getX()>141&&e.getX()<182&&e.getY()>80&&e.getY()<121)&&b2!=true){ b2=true; Draw1(g); } if((e.getX()>182&&e.getX()<222&&e.getY()>80&& e.getY()<120)&&b3!=true){ b3=true; Draw1(g); } if((e.getX()>100&&e.getX()<141&&e.getY()>121&&e.getY()<162)&&b4!=true){ b4=true; Draw1(g); } if((e.getX()>141&&e.getX()<181&&e.getY()>121&&e.getY()<141)&&b5!=true){ b5=true; Draw1(g); } if((e.getX()>182&&e.getX()<222&&e.getY()>121&&e.getY()<142)&&b6!=true){ b6=true; Draw1(g); } } public void Draw1(Graphics g){ if(b1==true) { Graphics2D g1 = (Graphics2D) g; g1.setPaint(Color.red); g1.drawLine(100, 80, 140, 120); g1.drawLine(100, 120, 140, 80); } if(b2==true){ Graphics2D g1= (Graphics2D)g; g1.setPaint(Color.red); g1.drawLine(141, 80, 181, 120); g1.drawLine(141, 120, 181, 80); } if(b3==true){ Graphics2D g1= (Graphics2D) g; g1.setPaint(Color.red); g1.drawLine(182, 80, 222, 120); g1.drawLine(182, 120, 222, 80); } if(b4=true){ Graphics2D g1= (Graphics2D) g; g1.setPaint(Color.red); g1.drawLine(100, 121, 141, 162); g1.drawLine(100, 162, 141, 121); } if(b5==true){ Graphics2D g1= (Graphics2D) g; g1.setColor(Color.red); g1.drawLine(141, 121, 181, 162); g1.drawLine(141, 162, 181, 121); } if(b6==true){ Graphics2D g1= (Graphics2D) g; g1.setColor(Color.red); g1.drawLine(182, 121, 222, 162); g1.drawLine(182, 162, 222, 121); } } @Override public void mousePressed(MouseEvent e) { } @Override public void mouseReleased(MouseEvent e) { } @Override public void mouseEntered(MouseEvent e) { } @Override public void mouseExited(MouseEvent e) { } }
Решение задачи: «Ошибка в отрисовке объекта»
textual
Листинг программы
if((e.getX()>99&&e.getX()<140&&e.getY()>80&&e.getY()<119)&&b1!=true){ b1=true; Draw1(g); }else if((e.getX()>141&&e.getX()<182&&e.getY()>80&&e.getY()<121)&&b2!=true){ b2=true; Draw1(g); }else if((e.getX()>182&&e.getX()<222&&e.getY()>80&& e.getY()<120)&&b3!=true){ b3=true; Draw1(g); }else if((e.getX()>100&&e.getX()<141&&e.getY()>121&&e.getY()<162)&&b4!=true){ b4=true; Draw1(g); }else if((e.getX()>141&&e.getX()<181&&e.getY()>121&&e.getY()<141)&&b5!=true){ b5=true; Draw1(g); }else if((e.getX()>182&&e.getX()<222&&e.getY()>121&&e.getY()<142)&&b6!=true){ b6=true; Draw1(g); }