Мне нужно использовать класс Console в Ready of Program для HoltSoft. Я не должен использовать свинг, поэтому, если я не могу сделать это без качелей, любезно проигнорируйте это.Почему круг не появляется, когда я нажимаю?
//imports
import java.awt.*;
import java.awt.event.*;
import hsa.*;
public class DrawLines extends Panel implements MouseListener, MouseMotionListener
{
Console c;
int startX, startY, prevX, prevY; //mouse coordinates
private boolean dragging; //whether or not the mouse is being dragged
MouseEvent e;
public DrawLines()
{
c = new Console(); //creates console window
addMouseListener (this); //detects press/release
addMouseMotionListener (this);//detects dragging
}
public void mousePressed (MouseEvent e)
{
while (!dragging)
{
try
{
startX = e.getX();//get the
startY = e.getY();//original co-ordinates
dragging = true;
}
catch (NullPointerException q) //because I kept getting this error
{
}
}
}
public void mouseDragged (MouseEvent e)
{
while (dragging)
{
try
{
int x = e.getX(); //gets and
int y = e.getY(); //updates
prevX = x; //the mouse
prevY = y; //coordinates
}
catch (NullPointerException q)//because I kept getting this error
{
}
}
}
public void mouseReleased (MouseEvent e)
{
dragging = false; //stopped dragging
}
public void drawTheLine()
{
mousePressed (e);
mouseDragged (e);
c.setColor (Color.black);
c.fillOval (prevX, prevY, 50, 50); //draws a circle where the mouse is
mouseReleased (e);
}
public void mouseMoved (MouseEvent e){}
public void mouseEntered (MouseEvent e){}
public void mouseExited (MouseEvent e){}
public void mouseClicked (MouseEvent e){}
public static void main (String[] args)
{
DrawLines a = new DrawLines();
a.drawTheLine();
}
}
Я пытался использовать MouseListener и MouseMotionListener в консоли. Сначала программа продолжала давать мне ошибки, поэтому я добавил структуры try/catch. Теперь это не сбой, но на экране ничего не появляется. Зачем? Помогите?
Если я не должен использовать try/catch, чтобы просто игнорировать его, что мне делать?
Мне не разрешено использовать что-либо кроме Console() для этой программы. Это задание на курс.
Когда вы получите исключение это обычно означает, что что-то не так. Простое игнорирование (с пустыми высказываниями) не решает основной проблемы. – assylias
Я не уверен, что такое консоль()? Вы должны использовать 'JPanel' и переопределить' paintComponent' –
Я чувствую, что это использование циклов while довольно опасно ... эта программа завершена? Мне кажется, что существует множество возможностей для бесконечного зависания, например mouseDragged (..) –