Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    2

    modificare velocità di un ciclo di immagini tramite una barra a scorrimento

    ciao ragazzi... ho trovato il vostro forum, e spero sia la mia salvezza!! devo riuscire a modificare il programma () in modo che la velocità delle immagini, invece di essere variata dal menu sopra, venga variata tramite una barra a scorrimento... e sono 2 settimane che ci lavoro sopra e non ne vengo fuori!! (ovviamente io il java non lo conosco per niente, solo che per un esame all'uni devo portare questa cosa... ed è gia tanto che sono arrivato a questo punto!!!)
    spero che qualcuno di voi riesca a farlo... o per lo meno spegarmi come procedere!!
    grazie in anticipo
    Mauci

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480

    Moderazione

    Trova uno spazio che non richieda la registrazione per il download del file.

    Anzi, ancora meglio, visto che devi lavorare sul codice, posta la parte problematica che non riesci a modificare o comprendere e ti verranno fornite le risposte.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    2
    allora scrivo diretttamente qui il codice:

    import java.awt.*;
    import java.awt.event.*;
    import java.awt.image.*;
    import javax.swing.*;
    import java.io.File;
    import javax.imageio.ImageIO;
    import javax.swing.filechooser.*;

    public class Animation2Frame extends JFrame {
    DrawPanel pan;

    AscMenu ascMenu = new AscMenu();
    private String[][] menuElem = { {"Esci"},
    {"Avvia", "Ferma"},
    {"50", "100", "200", "500", "1000"} };
    private String[] menuHeader = {"File", "Azioni", "Velocit‡" };

    public Animation2Frame() {

    super ("Animation2Frame");
    setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
    setLocation (200, 100);
    pan = new DrawPanel();
    add(pan, "Center");

    JMenuBar barraMenu = new JMenuBar();
    setJMenuBar(barraMenu);

    for(int i=0; i<menuHeader.length; i++){
    JMenu menu = new JMenu (menuHeader[i]);
    for(int j=0; j<menuElem[i].length; j++){
    JMenuItem mItem = new JMenuItem (menuElem[i][j]);
    menu.add(mItem);
    mItem.addActionListener (ascMenu);
    }
    barraMenu.add (menu);
    }
    pack();
    setVisible (true);
    }

    public static void main (String[] args) {
    Animation2Frame winFrame = new Animation2Frame();
    }

    public class AscMenu implements ActionListener {
    public void actionPerformed (ActionEvent ev) {
    String comm = ev.getActionCommand();
    if (comm.equals ("50"))
    pan.vel = 1000;
    if (comm.equals ("100"))
    pan.vel = 500;
    if (comm.equals ("200"))
    pan.vel = 200;
    if (comm.equals ("500"))
    pan.vel = 100;
    if (comm.equals ("1000"))
    pan.vel = 50;
    if (comm.equals ("Avvia"))
    pan.azione = true;
    pan.repaint();
    if (comm.equals ("Ferma"))
    pan.azione = false;
    if (comm.equals ("Esci"))
    System.exit (0);
    }
    }

    }



    import java.awt.*;
    import javax.swing.*;
    import java.awt.geom.*;
    import java.awt.image.*;
    import javax.imageio.ImageIO;
    import java.io.*;

    public class DrawPanel extends JPanel {
    BufferedImage[] images = new BufferedImage[6];
    int frame;
    int vel=100;
    boolean azione=false;


    public DrawPanel() { // costruttore
    super();
    for(int i=0; i<6;i++) {
    try {
    File inFile = new File ("Corridore"+i+".jpg");
    images[i] = ImageIO.read( inFile);
    }
    catch (IOException e){System.out.println("IOException");};
    }
    setPreferredSize(new Dimension(500,500)); //dimensio
    frame = 0;
    setBackground(Color.white);
    }

    protected void paintComponent(Graphics g) {

    super.paintComponent(g);
    Graphics2D g2 = (Graphics2D)g;
    g2.drawImage(images[frame], 250, 250, this); //posizione
    try { Thread.sleep(vel);
    }
    catch (InterruptedException e) {}
    frame = (frame+1)%images.length;
    if (azione){
    repaint();
    }

    }
    }

    praticamente io dovrei togliere la parte di menu riguardante la velocià (e fino a qui ci sono)
    e modificare questa parte:

    public class AscMenu implements ActionListener {
    public void actionPerformed (ActionEvent ev) {
    String comm = ev.getActionCommand();
    if (comm.equals ("50"))
    pan.vel = 1000;
    if (comm.equals ("100"))
    pan.vel = 500;
    if (comm.equals ("200"))
    pan.vel = 200;
    if (comm.equals ("500"))
    pan.vel = 100;
    if (comm.equals ("1000"))
    pan.vel = 50;

    in modo che, al posto che la variabile della velocità cambi selezionando un valore sul menu, lo faccia utilizzando una barra a scorrimento....
    spero di esser stato chiaro....

    grazie mille

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Prima di aprire l'editor e provare a metterci mano (non ne ho molta voglia a dire il vero) , hai provato a dare una letta al tutorial della SUN inerente i componenti di swing? Ci sarebbe

    http://java.sun.com/docs/books/tutor...omponents.html

    e quindi

    http://java.sun.com/docs/books/tutor...ts/slider.html

    dove un esempio è proprio un'animazione in cui si decide, tramite la barra di scorrimento, il frame-rate.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.