Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Mover una figura / imagen con un ciclo

Buenos días estimados,

Quiero solicitar su valiosa ayuda, necesito mover una figura con un ciclo for, por ejemplo hacer que una pelota (circulo) se mueva horizontalmente de un lado hacia el otro. Es importante mencionar que mi conocimiento de Java es mas de consola pero aún principiante.
He logrado mover la pelota con el mouse y presionando botones, utilizando paint y repaint, pero al aplicarlo al ciclo no logro que funcione.
La aplicación que deseo hacer es aplicado a fisica.

Les agradezco mucho la ayuda que puedan brindarme.

Saludos,

octubre 23, 2014 | Unregistered CommenterEdmec2000

No tengo ni idea esto pero si pones el código es posible que más gente te ayude.

Un saludo.

octubre 24, 2014 | Registered Commenterantuansoft

Creo que el código siguiente te dará algunas ideas.

/**
<p>
@author Carlos Hoces
*/
public class NewJFrame extends javax.swing.JFrame {

private double xCoord, yCoord, diameter;

/** Creates new form NewJFrame */
public NewJFrame() {
diameter = 50;
initComponents();
Executors.newScheduledThreadPool(1).scheduleAtFixedRate(new Runnable() {

@Override
public void run() {
xCoord++;
yCoord++;
diameter++;
jPanel1.repaint();
}
}, 1, 1, TimeUnit.SECONDS);
}

/** This method is called from within the constructor to
initialize the form.
WARNING: Do NOT modify this code. The content of this method is
always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jPanel1 = new Circulo();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 400, Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 300, Short.MAX_VALUE)
);

getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);

pack();
}// </editor-fold>

/**
@param args the command line arguments
*/
public static void main(String args[]) {
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new NewJFrame().setVisible(true);
}
});
}

private class Circulo extends JPanel {

@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
((Graphics2D) g).fill(new Ellipse2D.Double(xCoord, yCoord, diameter, diameter));
}
}

// Variables declaration - do not modify
private javax.swing.JPanel jPanel1;
// End of variables declaration
}

octubre 25, 2014 | Registered Commenterchoces

Tienes un ejemplo de cómo hacer que se muevan pelotitas en una ventana en este tutorial:

http://www.javahispano.org/portada/2011/7/5/java-basico-con-ejemplos.html

octubre 26, 2014 | Registered CommenterAbraham