Salve a tutti ho già postato un problema simile, credevo di riuscire a risolvere da solo ma non è stato così, quindi ritento con qualche anima pia sul forum:
vi spiego la situazione, devo inserire un pannello all'interno del pannello principale di un frame più grande dove sia possibile disegnare in stile matita del paint (il pannello serve per inserire una ipotetica firma da parte di un cliente) ho creato il pannello che realizza il disegno ma mi da un problemino, praticamente quando trascino il mouse per disegnare le linee(la firma) il pannello si riempie con elementi del pannello che lo contiene, non so se sono stato chiaro.
Ho letto molta documentazione sul disegno in java ma non sono riuscito a capire dove intervenire, posto l'ultima versione del codice:
Questo era il pannello dove disegno, e questo che segue è il codice con il quale includo il pannello in quello principalecodice:import javax.swing.*; import java.awt.*; import java.awt.Color.*; import java.awt.event.*; public class PaintPannello extends javax.swing.JPanel { private int startXPoint = 0; // coordinata x di partenza private int endXPoint = 0; // coordinata x di arrivo private int startYPoint = 0; // coordinata y di partenza private int endYPoint = 0; // coordinata y di arrivo private boolean paint = false; // ascoltatore del moto del mouse class mMotionListener implements MouseMotionListener { public void mouseDragged(MouseEvent e) { // aggiorna le coordinate startXPoint = endXPoint; startYPoint = endYPoint; endXPoint = e.getX(); endYPoint = e.getY(); // disegna PaintPannello.this.repaint(); } public void mouseMoved(MouseEvent e) { // aggiorna le coordinate startXPoint = endXPoint; startYPoint = endYPoint; endXPoint = e.getX(); endYPoint = e.getY(); } } // ascoltatore dei pulsanti del mouse class mListener implements MouseListener { // i seguenti metodi sono richiesti dalla // interfaccia MouseListener anche se non // vengono utilizzati public void mouseClicked(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} // pulsante premuto public void mousePressed(MouseEvent e) { // attiva la modalita' di disegno paint = true; } // pulsante rilasciato public void mouseReleased(MouseEvent e) { // disattiva la modalita' di disegno paint = false; } } // Costruttore della classe principale public PaintPannello() { initComponents(); this.setSize(374,152); MouseListener ml = new mListener(); addMouseListener(ml); MouseMotionListener mml = new mMotionListener(); addMouseMotionListener(mml); } public void paint(Graphics g) { // se e' attiva la modalita' di disegno, traccia una riga if(paint) g.drawLine(startXPoint,startYPoint,endXPoint,endYPoint); }
Grazie anticipatamente per l'aiuto ciao a tutticodice:PaintPannello paint = new PaintPannello(); paint.setVisible(true); pannelloContenitorePaint.add(paint); pannelloContenitorePaint.setVisible(true); this.validate();

Rispondi quotando