Mit addMouseListener() und paintComponent() für JPanel

Dies ist ein follow-up zu meinem Vorherige Frage. Ich habe vereinfacht, so viel wie ich konnte, und es funktioniert immer noch nicht! Obwohl, die gute Sache, die ich gekommen, um mit getGraphics().

Eine detaillierte Erklärung, was geht hier falsch ist Massiv geschätzt. Mein Verdacht ist, dass etwas falsch mit der Art, wie ich verwendet addMouseListener() Methode hier.

BEARBEITEN völlig schrieb den code. Noch immer nicht richtig funktioniert, obwohl.

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;

import javax.swing.JFrame;
import javax.swing.JPanel;


public class RunClass{

    static MainClass1 inst1 = new MainClass1();



    public static void main(String args[]){

        JFrame frame1 = new JFrame();
        frame1.add(inst1);
        frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame1.setTitle("NewPaintToolbox");
        frame1.setSize(200, 200);
        frame1.setLocationRelativeTo(null);     
        frame1.setVisible(true);                
    }
}

class MainClass1 extends JPanel implements MouseListener, MouseMotionListener{

    int xvar=30;
    int yvar=30;
    //static PaintClass22 inst1 = new PaintClass22();


    @Override
    public void mouseClicked(MouseEvent arg0) {
        //TODO Auto-generated method stub
        xvar = arg0.getX();
        yvar = arg0.getY();
        repaint(xvar,yvar,10,10);

    }   

    @Override
    public void mouseEntered(MouseEvent arg0) {
        //TODO Auto-generated method stub

    }

    @Override
    public void mouseExited(MouseEvent arg0) {
        //TODO Auto-generated method stub

    }

    @Override
    public void mousePressed(MouseEvent arg0) {
        //TODO Auto-generated method stub

    }

    @Override
    public void mouseReleased(MouseEvent e) {
        //TODO Auto-generated method stub

    }

    @Override
    public void mouseDragged(MouseEvent arg0) {
        //TODO Auto-generated method stub
        xvar = arg0.getX();
        yvar = arg0.getY();
        repaint(xvar,yvar,10,10);

    }

    @Override
    public void mouseMoved(MouseEvent arg0) {
        //TODO Auto-generated method stub

    }
    @Override
    public void paintComponent(Graphics g){

        super.paintComponent(g);
        g.setColor(Color.RED);
        g.fillRect(xvar, yvar, 10, 10);     

    }



}
InformationsquelleAutor Alex | 2012-08-31
Schreibe einen Kommentar