Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [aiuto]salvare immagine creata con draw

    Salve ragazzi ho un piccolo problema, sto realizzando un programma in java che mi consenta di disegnare linee, rette, rettangoli , ovali, ecc. Il suddetto programma sono riuscito a realizzarlo, ora ciò che voglio fare e riuscire a salvare ciò che ho disegnato su schermo in una variabile di tipo Image. il mio disegno creato viene posto in un JPanel e non riesco a capire come prelevarlo.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [aiuto]salvare immagine creata con draw

    Originariamente inviato da boom2112
    Salve ragazzi ho un piccolo problema, sto realizzando un programma in java che mi consenta di disegnare linee, rette, rettangoli , ovali, ecc. Il suddetto programma sono riuscito a realizzarlo
    Innanzitutto bisognerebbe vedere come hai fatto il painting.

    Originariamente inviato da boom2112
    ora ciò che voglio fare e riuscire a salvare ciò che ho disegnato su schermo in una variabile di tipo Image.
    Ripeto: descrivi (o posta il codice che è meglio) come hai fatto il painting di tutte le figure.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    questo è per disegnare con la penna nel JPanel

    public void penOperation(MouseEvent e)
    {
    Graphics2D g = (Graphics2D) drawPanel.getGraphics();
    g.setColor(mainColor);

    /*
    In initial state setup default values
    for mouse coordinates
    */
    if (initialPen)
    {

    setGraphicalDefaults(e);
    initialPen = false;
    g.drawLine(prevx,prevy,mousex,mousey);

    }

    /*
    Make sure that the mouse has actually
    moved from its previous position.
    */
    if (mouseHasMoved(e))
    {
    /*
    set mouse coordinates to
    current mouse position
    */
    mousex = e.getX();
    mousey = e.getY();

    /*
    draw a line from the previous mouse coordinates
    to the current mouse coordinates
    */
    g.drawLine(prevx,prevy,mousex,mousey);

    /*
    set the current mouse coordinates to
    previous mouse coordinates for next time
    */
    prevx = mousex;
    prevy = mousey;
    }

    }

  4. #4
    public Scrible()
    {

    setLayout(null);
    setBackground(Color.BLACK);

    /* setup operation buttons */
    control_Panel controlPanel = new control_Panel();
    reset_save_Panel rsPanel=new reset_save_Panel();
    controlPanel.setBounds(0,0,100,100);

    controlPanel.setBackground(Color.BLACK);
    drawPanel.setBackground(Color.WHITE);
    add(controlPanel);
    controlPanel.reshape(20,20,200,380);
    add(drawPanel);
    drawPanel.reshape(230,20,421,380);
    add(rsPanel);
    rsPanel.reshape(660,170,100,100);

    /* Setup action listener */
    penButton.addActionListener(this);
    lineButton.addActionListener(this);
    eraserButton.addActionListener(this);
    rectButton.addActionListener(this);
    ovalButton.addActionListener(this);
    polygonButton.addActionListener(this);
    splineButton.addActionListener(this);
    roundrectButton.addActionListener(this);
    clearButton.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
    drawPanel.removeAll();
    drawPanel.repaint();
    drawPanel.validate();
    }
    });

    /* Adding component listeners to main panel (applet) */
    drawPanel.addMouseMotionListener(this);
    drawPanel.addMouseListener(this);
    this.addMouseListener(this);
    this.addMouseMotionListener(this);

    updateRGBValues();

    }

  5. #5
    public void actionPerformed(ActionEvent e)
    {

    /* Determine what action has occured */
    /* Set the relative values */

    if (e.getActionCommand() == "Pen")
    opStatus = PEN_OP;

    if (e.getActionCommand() == "Line")
    opStatus = LINE_OP;

    if (e.getActionCommand() == "Eraser")
    opStatus = ERASER_OP;

    if (e.getActionCommand() == "Clear")
    opStatus = CLEAR_OP;

    if (e.getActionCommand() == "Rectangle")
    opStatus = RECT_OP;

    if (e.getActionCommand() == "Oval")
    opStatus = OVAL_OP;

    if (e.getActionCommand() == "Polygon")
    opStatus = POLY_OP;

    if (e.getActionCommand() == "Spline")
    opStatus = SPLINE_OP;

    if (e.getActionCommand() == "Round Rectangle")
    opStatus = ROUND_OP;


    initialPolygon = true;
    initialSpline = true;

    /*
    Set main color, to equivelent colorStatus value
    */
    setMainColor();
    updateRGBValues();


    }

  6. #6
    public void mouseDragged(MouseEvent e)
    {
    updateMouseCoordinates(e);

    switch (opStatus)
    {
    /* If opStatus is PEN_OP then call penOperation method */
    case PEN_OP : penOperation(e);
    break;

    /* If opStatus is LINE_OP then call lineOperation method */
    case LINE_OP : lineOperation(e);
    break;

    /* If opStatus is RECt_OP then call rectOperation method */
    case RECT_OP : rectOperation(e);
    break;

    /* If opStatus is OVAL_OP then call ovalOperation method */
    case OVAL_OP : ovalOperation(e);
    break;

    /* If opStatus is FRECT_OP then call frectOperation method */
    case FRECT_OP : frectOperation(e);
    break;

    /* If opStatus is FOVAL_OP then call fovalOperation method */
    case FOVAL_OP : fovalOperation(e);
    break;

    /* If opStatus is ERASER_OP then call eraserOperation method */
    case ERASER_OP: eraserOperation(e);
    break;

    case ROUND_OP : roundrectOperation(e);
    break;

    }

    }


    /*
    Method will be activated when mouse has been release from pressed \
    mode. At this stage the method will call the finalization routines
    for the current operation.
    */
    public void mouseReleased(MouseEvent e)
    {
    /* Update current mouse coordinates to screen */
    updateMouseCoordinates(e);

    switch (opStatus)
    {
    /* If opStatus is PEN_OP then call releasedPen method */
    case PEN_OP : releasedPen();
    break;

    /* If opStatus is LINE_OP then call releasedLine method */
    case LINE_OP : releasedLine();
    break;

    /* If opStatus is RECT_OP then call releasedRect method */
    case RECT_OP : releasedRect();
    break;

    /* If opStatus is OVAL_OP then call releasedOval method */
    case OVAL_OP : releasedOval();
    break;

    /* If opStatus is FRECT_OP then call releasedFrect method */
    case FRECT_OP : releasedFRect();
    break;

    /* If opStatus is FOVAL_OP then call releasedFoval method */
    case FOVAL_OP : releasedFOval();
    break;

    /* If opStatus is ERASER_OP then call releasedEraser method */
    case ERASER_OP : releasedEraser();
    break;

    case ROUND_OP : releasedRoundRect();
    break;
    }

    }

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Bene .... anzi male ... tutto il tuo approccio al disegno è completamente sbagliato. Stai disegnando "al volo" sul componente. Prova a minimizzare e poi riaprire la finestra o prova a passare un'altra finestra sopra la tua e ..... sparirà tutto!!!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Solo una nota di carattere generale.
    Come ampiamente ripetuto in tutto il forum, come chiaramente indicato nel Regolamento (che va sempre letto prima di postare), quando si posta del codice lo si deve fare all'interno degli appositi tag CODE.

    Hai notato che tutto ciò che hai postato è solo un'accozzaglia non indentata di scritte praticamente di difficile lettura?

    Hai visto che negli altri post, solitamente, il codice compare bello limpido?

    Per le prossime volte, usa i tag CODE:

    [code]
    codice
    [/code]


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    chiedo scusa per l'errore.

  10. #10
    come potrei fare per migliorare il mio codice?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.