Foros del Web » Programación para mayores de 30 ;) » Java »

Ayuda con JButton

Estas en el tema de Ayuda con JButton en el foro de Java en Foros del Web. Hola a todo, por fin después de mucho intentos he logrado colocar los botones donde lo deseaba. La aplicación funciona casi perfectamente. Cuando la misma ...
  #1 (permalink)  
Antiguo 26/07/2010, 19:00
 
Fecha de Ingreso: noviembre-2009
Mensajes: 23
Antigüedad: 14 años, 5 meses
Puntos: 0
Ayuda con JButton

Hola a todo, por fin después de mucho intentos he logrado colocar los botones donde lo deseaba. La aplicación funciona casi perfectamente. Cuando la misma finaliza, aparece la pregunta "¿Deseas seguir ejecutando? Si el usuario decide "NO", ésta finaliza satisfactoriamente. En tanto, si decide continuar, la misma no ejecuta la acción requerida, cuando después de la instrucción evento.getActionCommand() (línea 83), coloco la instrucción "new EJEMPLO022()".

Mi pregunta es, ¿cómo puedo hacer para que una vez hecho "clic" en el botón "Si", la acción que desencadene sea el inicio de la aplicación?

Al utilizar el método repaint(), la aplicación se reinicia nuevamente, pero los botones no desaparecen.

Aquí les envio el código fuente. (recuerden que estoy trabajando en IDE Netbean 6.9). Me acaba de actualizar.

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;

public class EJEMPLO022 extends JFrame implements ActionListener {
Container contenedor = getContentPane();
// ControlBoton control = new ControlBoton();
JButton Si = new JButton("Si");
JButton No = new JButton("No");

public EJEMPLO022() {
super("Dibujo de un conjunto de estrellas.");
contenedor.setBackground(Color.WHITE);

} // cierre del constructor EJEMPLO022()

public void paint(Graphics g) {
int k = 1;
super.paint(g);
int puntosX[] = {55, 67, 109, 73, 83, 55, 27, 37, 1, 43};
int puntosY[] = {0, 36, 36, 54, 96, 72, 96, 54, 36, 36};

Graphics2D g2d = (Graphics2D) g;
GeneralPath estrella = new GeneralPath(); // crea objeto GeneralPath.
contenedor.setLayout(new FlowLayout());
// Establece coordenada inicial de la ruta general
estrella.moveTo(puntosX[0], puntosY[0]);

// Dibuja estrella
for(int n = 1; n < puntosX.length; n++)
estrella.lineTo(puntosX[n], puntosY[n]);
estrella.closePath(); // procede a cerrar la figura
g2d.translate(200,200); // traslada el origen a (200, 200).

// Gira alrededor del origen y dibuja estrella en colores arbitrarios.
while(k <= 20) {
pausa();
g2d.rotate(Math.PI/10.0); // procede a gira el sistema de coordenadas
g2d.setColor(new Color((int)(Math.random() * 256),
(int)(Math.random() * 256), (int)(Math.random() * 256)));
g2d.fill(estrella); // dibuja estrella rellena.
k++;
} // cierre de while

// Coloca los botones de continuar o no con la ejecución.
g.setFont(new Font("Arial Rounded MT Bold", Font.PLAIN,14));
g.drawString("¿Deseas seguir ejecutando?", -90, 150);
Si.addActionListener(this);
No.addActionListener(this);
add(Si);
Si.setBounds(new Rectangle(150, 350, 50, 30));
add(No);
No.setBounds(new Rectangle(210, 350, 50, 30));
} // cierre del método paint().

public static void main(String args[]) {
// Objetivo del ejemplo.
EJEMPLO022 aplicacion = new EJEMPLO022();
/* JOptionPane.showMessageDialog(null, "El programa muestra el " +
"uso de la clase \"JButton\" para continuar con la ejecución \n" +
"de una aplicación en forma repetitiva.\n", "Objetivo",
JOptionPane.INFORMATION_MESSAGE); */
aplicacion.setDefaultCloseOperation(JFrame.EXIT_ON _CLOSE);
aplicacion.setSize(400, 500);
aplicacion.setLocation(400, 150);
aplicacion.setVisible(true);
} // cierre del métod main.

static void pausa() {
try {
Thread.sleep(100,10000); // Pausa en milisegundos + nanosegundos.
}
catch(InterruptedException exc) {}
return;
} // cierre del método pausa.

public void actionPerformed(ActionEvent evento) {

if(evento.getSource() == Si) {
evento.getActionCommand();
new EJEMPLO022();
// repaint();
} else if(evento.getSource() == No) {
evento.getActionCommand();
salida();
System.exit(1);
}
} // cierre de actionPerformed

void salida() {
JOptionPane.showMessageDialog(null, "Ha sido un placer haber " +
"trabajado con usted. Hasta luego...", "Salida",
JOptionPane.INFORMATION_MESSAGE);
return;
}
} // cierre de la clase EJEMPLO022.

Saludos a todos y gracias de antemano.
  #2 (permalink)  
Antiguo 26/07/2010, 20:37
Avatar de FiruzzZ  
Fecha de Ingreso: diciembre-2007
Ubicación: en casa
Mensajes: 470
Antigüedad: 16 años, 4 meses
Puntos: 41
Respuesta: Ayuda con JButton

llamando al mismo método que hizo la "magia" la 1ra vez
Código Java:
Ver original
  1. if (evento.getSource() == Si) {
  2.          paint(this.getGraphics()); // <-- y pasando parámetro que corresponde
  3.  }

PD: el título del post no tiene nada que ver con tu duda..

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:16.