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

[SOLUCIONADO] boton desaparece al reedimensionar la pantalla

Estas en el tema de boton desaparece al reedimensionar la pantalla en el foro de Java en Foros del Web. hace unas semanas postee un problema con un boton, entiendo que el código estaba incompleto (son muchas clases como para poner aquí) y nadie supo ...
  #1 (permalink)  
Antiguo 29/12/2014, 04:47
dr4
 
Fecha de Ingreso: noviembre-2014
Mensajes: 28
Antigüedad: 9 años, 5 meses
Puntos: 0
boton desaparece al reedimensionar la pantalla

hace unas semanas postee un problema con un boton, entiendo que el código estaba incompleto (son muchas clases como para poner aquí) y nadie supo ayudarme y por mucho que lo intento no consigo solucionarlo así que he borrado todo hasta llegar al punto exacto en el que me da problemas, y aquí se ve como desaparece el botón simplemente al crear el el método graphics aunque no tenga nada dentro y no entiendo porque (esta lleno de imágenes pero he visto que simplemente creándolo al reedimensionar la ventana el botón desaparece, que es lo mismo que pasa si pongo el repaint (el boton desaparece y solo vuelve a salir hasta que paso el raton por encima)

¿alguien me puede decir porqué se borra el botón cuando el graphics g hace un repaint y como hacer para que no lo haga y este siempre visible?

Código:


/**
 *
 * @author Paulo
 */
public class Panel extends JPanel{

 
    int contador,sumaclick;
    int choque;
    int c1;
    URL url,urltrian;
    JButton boton1;
    int pulso1;
    
   
    
    
    public Panel(){
   
        
         
      boton1=new JButton("boton1");

   boton1=new JButton();
        
        
        ImageIcon icono=new ImageIcon("/imagenes/boton-1.jpg");
        boton1.setIcon(icono);
          this.add(boton1);
          boton1.setMargin(new Insets(30, 30,70, 70)); 
    }

public void paint (Graphics g)  {}

clase del jframe

Código:
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
/**
 *
 * @author Paulo
 */
public class Ventana extends JFrame/* implements MouseListener,KeyListener*/ {
    public int n1,n2;
   Panel panel;
   JButton boton1;
   int pulso1;
   Botones botones;
   
    public Ventana() throws InterruptedException{
        
    int anchura=407;
    int altura=500;
        this.setBounds(0,0,anchura,altura);
        this.setTitle("ventana");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setLocationRelativeTo(null);
        
  panel=new Panel();
  this.add(panel);

     this.setVisible(true);
       
        
}

Última edición por dr4; 29/12/2014 a las 10:14
  #2 (permalink)  
Antiguo 29/12/2014, 16:07
(Desactivado)
 
Fecha de Ingreso: enero-2013
Mensajes: 289
Antigüedad: 11 años, 3 meses
Puntos: 10
Respuesta: boton desaparece al reedimensionar la pantalla

¿para qué quieres esta línea de código?

public void paint (Graphics g) {}

Creo que no hace falta. El paint(Graphics g) es para dibujar cosas sobre un lienzo, como líneas y círculos, pero tu le has puesto un botón al JPanel y por lo tanto no tienes que dibujar nada.
  #3 (permalink)  
Antiguo 29/12/2014, 20:35
dr4
 
Fecha de Ingreso: noviembre-2014
Mensajes: 28
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: boton desaparece al reedimensionar la pantalla

los he solucionado he cambiado el public void paint (Graphics g) {} por public void paintComponent (Graphics g) {} ahora va perfecto

Etiquetas: arraylist, boton, clase, desaparece, jframe, pantalla
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




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