Проблемы с перерисовкой JFrame - Java

Я хочу иметь возможность рисовать с помощью Paint () Java на JFrame. Когда я нажимаю JFrame (пока где угодно), я хочу, чтобы JFrame был перерисован с координатами щелчка - аналогично этому Java-апплету http://www.realapplets.com/tutorial/MouseClickExample.html

В настоящее время работает:

  • Все отрисовывается изначально, и JFrame отображается правильно.

Не работает:

  • JFrame не перерисовывается и не обновляется, даже если объявлен repaint ()

Вот мой код - пожалуйста как можно строже - я хотел бы улучшить свою технику программирования на Java, чтобы (если у вас есть время) указать на все аспекты, которые я мог бы улучшить.

Любая помощь будет очень признательна.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class AreaForText extends JPanel implements MouseListener {

int xpos; 
int ypos;

JFrame myJFrame = new JFrame();

public void setJFrame() {

    myJFrame.setSize(300, 150);
    myJFrame.setTitle("Bigger Text!");
    myJFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    myJFrame.setVisible(true);
    myJFrame.getContentPane().add(new AreaForText());
    myJFrame.addMouseListener(new AreaForText());

}

public void mouseClicked(MouseEvent me) {
    //Save the coordinates of the click lke this. 
    xpos = MouseInfo.getPointerInfo().getLocation().x; 
    ypos = MouseInfo.getPointerInfo().getLocation().y;
    System.out.print("Click" + "  x: " + xpos + "  y: " + ypos);
    myJFrame.invalidate();
    repaint();
    revalidate();
}


public void mouseEntered(MouseEvent e){
}

public void mouseReleased(MouseEvent e) { 
}

public void mousePressed(MouseEvent e) {
}

public void mouseExited(MouseEvent e) { 
}

public void paint(Graphics g) {

    System.out.print("hello");
    g.drawString("Hello World", 30, 80);
    g.fillRect(20,20,20,20);        
    g.drawString("("+xpos+","+ypos+")",xpos,ypos);

    }
}

class EnlargeText {

    public static void main(String args[]) {

       AreaForText test = new AreaForText();

       test.setJFrame();

    }

 } 

7
задан Lawrence Dol 20 June 2011 в 19:09
поделиться