excusa me puedo buscar mucho para encontrar cómo esas 3 funciones (pintura, volver a pintar, paintComponent) interactúan entre ellos, pero no tengo idea. Se puede explicar de mí exactamente cuando son llamados ( porque a veces java llamada sin preguntarme él) lo que hacen exactamente y cuál es la diferencia entre ellos. Gracias

  • la pintura es para AWT o Componentes de interfaz de usuario delagate, paintComponent es para la Oscilación de JComponent, repaint (a través de programación) es sheduled actualización de JComponent de (Swing) temporizador o notificador para LayoutManager que vuelva a validar() requiere la actualización (después de quitar, agregar, relayout)
InformationsquelleAutor The Answer | 2013-06-01

1 Comentario

  1. 5

    No estoy seguro acerca de la «pintura», pero me puede explicar la relación entre el repaint() y paintComponent().

    En mi limitada experiencia con java, el paintComponent() el método es un método de la clase JPanel y es miembro de «swing».

    La paintComponent() método que se encarga de toda la «pintura». En esencia, se dibuja lo que quieras en el JPanel usando un objeto Gráfico.

    repaint() es una enfermedad hereditaria método de instancia para todos los objetos JPanel. Llamar a [your_JPanel_object].repaint() llama a la paintComponent() método.

    Cada vez que desee cambiar la apariencia de tu JPanel, usted debe llamar a repaint().

    Determinadas acciones de forma automática llamar a repaint() método:

    • Volver a cambiar el tamaño de la ventana de
    • Minimizar y maximizar la ventana

    para nombrar unos pocos.

    EN CORTO paintComponent() es un método definido en el JPanel o de su propia clase personalizada que se extiende JPanel. repaint() es un método que se llama en otra clase (tales como JFrame) que eventualmente se llama paintComponent().

    aquí está un ejemplo:

        public class MyPanel extends JPanel{
    
        public void paintComponent(Graphics g){
            super.paintComponent(g);
    
            g.draw([whatever you want]);
    
            ...
            ...
    
        }
    }
    public class MyFrame extends JFrame{
    
        public MyFrame(){
    
        MyPanel myPanel = new MyPanel();
    
        myPanel.repaint();
    
        }
    
    }
    • por favor, sea preciso: a) paintComponent() el método es un método en el JPanel estrictamente hablando, mal: es un método de JComponent, nada adicional hecho en JPanel b) agrega todos los componentes (tales como JButtons, JTextFields, y otros JPanels) en el JPanel usando un Gráfico mal: por el contrario, es explícitamente documentado para ser responsable de pintura mismo – no tiene nada que ver con la pintura de sus hijos (que se realiza en paintChildren)
    • gracias por las correcciones. Me acaba de ofrecer mi interpretación como un principiante

Dejar respuesta

Please enter your comment!
Please enter your name here