У меня проблема с GUI.В моем симуляторе рисования я создал JLabel, который показывает координаты щелчков мыши.Я поместил его на юго-запад от моего JFrame, но после каждого щелчка, помимо его первого места, координаты мыши также появляются на северо-западе от JFrame.Я не понял, в чем проблема. Код здесь.
JLabel statusBar = new JLabel( "Mouse outside JPanel" );
Container panel;
JFrame frame = new JFrame();
panel = frame.getContentPane();
panel.add(this);
frame.setJMenuBar(jmb);
frame.add(statusBar, BorderLayout.SOUTH );
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(700,700);
frame.setVisible(true);
Вот как я редактирую JLabel
statusBar.setText( String.format( "Clicked at [%d, %d]",
e.getX(), e.getY() ) );
Весь код может быть длиннее, поэтому я копирую некоторыеважные части
public class Tester extends JPanel implements MouseMotionListener, MouseListener {
....
Вот так рисуется одна линия, и я задаю здесь имя метки
else if(lineci == true){
if(mouseclicks == 0){
l1.point1.x = e.getX();
l1.point1.y = e.getY();
statusBar.setText( String.format( "Clicked at [%d, %d]",
e.getX(), e.getY() ) );
mouseclicks++;
}
else if(mouseclicks == 1){
l1.point2.x = e.getX();
l1.point2.y = e.getY();
statusBar.setText( String.format( "Clicked at [%d, %d]",
e.getX(), e.getY() ) );
mouseclicks = 0;
int a = l1.point2.y - l1.point1.y;
int b = l1.point1.x - l1.point2.x;
int c = (l1.point2.x * l1.point1.y) - (l1.point1.x * l1.point2.y);
l1.denklem[0] = a;
l1.denklem[1] = b;
l1.denklem[2] = c;
array.add(l1);
array3.add(l1);
repaint();
}
Кстати, я создаю объект JLabel вне конструкторакласс, сразу после создания класса я имею в виду.
Все еще та же проблема существует.