Curso Java Aplicaciones gráficas. Swing V. Dibujando en el Frame. Vídeo 59

  Рет қаралды 145,996

pildorasinformaticas

pildorasinformaticas

10 жыл бұрын

Comenzamos a ver en este vídeo cómo dibujar dentro del frame. utilizamos la clase Graphics y sus métodos. Veremos en el proximo vídeo cómo utilizar la biblioteca Java 2D para dibujos más avanzados.
Para más cursos, ejercicios y manuales visita: www.pildorasinformaticas.com

Пікірлер: 207
@pildorasinformaticas
@pildorasinformaticas 3 жыл бұрын
✅✅ ✅ ✅ ✅ Todos mis cursos gratuitos 👉 www.pildorasinformaticas.es ✅✅ ✅ ✅ ✅ 🚀 ¿Quieres ejercicios? ¿Quieres más temario? 👉 www.pildorasinformaticas.es/course/java-tutorizado/🚀 🚀 ¿Quieres que te resuelva las dudas de Java? 👉 www.pildorasinformaticas.es/course/java-tutorizado/ 🚀 💥💥💥 Siempre seguiré subiendo cursos gratuitos por aquí. Gracias a todos por seguirme. 💥💥💥
@giomarsalazar7547
@giomarsalazar7547 6 жыл бұрын
Gracias Por la Clase Profesor Juan. Como Siempre Totalmente Clara, Consistente y Robusta.
@facucalle8737
@facucalle8737 4 жыл бұрын
quien sigue mirando el curso en 2020??
@9orochimaru
@9orochimaru 3 жыл бұрын
yo jeje
@9orochimaru
@9orochimaru 3 жыл бұрын
lo terminaste?
@arielizurieta9110
@arielizurieta9110 3 жыл бұрын
Aca !
@pelucho4728
@pelucho4728 3 жыл бұрын
Yo sigo aquí, en 2021
@robertoberrocal9102
@robertoberrocal9102 3 жыл бұрын
@@pelucho4728 x2 jajajja
@jhonfredyrincon-pelayo2968
@jhonfredyrincon-pelayo2968 6 жыл бұрын
Buenas noches. Otra madrugada programando, Dios le bendiga, el dará la recompensa, a esta buena obra,muy buen material, gracias.
@pildorasinformaticas
@pildorasinformaticas 8 жыл бұрын
vangodp: Sí, las láminas tienen transparencia. Habrá que mirar también que layout has utilizado en tus láminas. También revisar las instrucciones setVisible y si has agregado los componentes correctamente ... Un saludo
@hectorgabrielvillasboahent4700
@hectorgabrielvillasboahent4700 3 жыл бұрын
Hola, den like al video y a este comentario si son de 13 o mejore de edad como yo. Este curso es tan bueno que hasta con mi edad se aprende😀😀😀
@miguelangelvasquezgarcia8235
@miguelangelvasquezgarcia8235 Жыл бұрын
Muchas Gracias profesor por compartir estos conocimientos gratuitamente, ahora comprendo, el porque dibujar una figura lleva los cuatro parametros, muchas gracias!!
@antonioj358
@antonioj358 8 жыл бұрын
Con el poco tiempo que tengo, me está costando un montón avanzar. Aun así, ya estamos llegando al vídeo 60. El curso me parece genial y didácticamente impecable. Muchísimas gracias por compartir tus conocimientos y tu tiempo con nosotros.
@pildorasinformaticas
@pildorasinformaticas 8 жыл бұрын
+Antonio J Muchas gracias por tu comentario y por seguir mi curso. Me alegro de que te guste. Un saludo!!
@compartelo007
@compartelo007 7 жыл бұрын
Genial como siempre.
@jmansanetperez
@jmansanetperez 5 жыл бұрын
Muchas gracias, Muchas gracias,Muchas gracias,Muchas gracias.
@issacron4513
@issacron4513 6 жыл бұрын
gracias juan excelente!!!
@Eleamuu
@Eleamuu 8 жыл бұрын
En primer lugar quiero agradecer nuevamente por el curso. Realmente notable es la capacidad de la que el profesor dispone para simplificar y ejemplificar conceptos. Sin experiencia laboral ni estudios referentes a la materia, me encantaría ingresar en el mundo IT. Estuve revisando bolsas de trabajo y demás (Java Trainee, Soporte SQL JR, etc.) donde hay anuncios de empresas que no requieren experiencia laboral, solamente interés por el aprendizaje y necesitaría saber que tipo de conceptos debería tener en claros a la hora de ir a la entrevista, y si esta será compleja/técnica o solamente con entender conceptos básicos, sería suficiente. Muchas gracias por el tiempo y un saludo.
@pildorasinformaticas
@pildorasinformaticas 8 жыл бұрын
+Dam Floresta Hola !! Gracias por el comentario. El tipo de entrevista dependerá de la empresa que la haga y del puesto a ocupar. A veces estas entrevistas son técnicas y complejas y otras veces muy sencillas. A veces hacen pruebas técnicas donde te evalúan y otras veces se fían de tu palabra y te hacen un contrato de prueba. Esto es así por lo menos en mi país. Un saludo
@teldatamcy5656
@teldatamcy5656 6 ай бұрын
Gracias, excelente!!! Chévere 🍌 2024!!!
@juanromero5156
@juanromero5156 5 жыл бұрын
Muy buena la explicación de que ya no se usa el getContentPane() a partir de la versión 5.0. Yo lo veía en otros tutoriales y foros y no entendía que diferencia había en usarlo o no
@jhoneduardogilortiz5731
@jhoneduardogilortiz5731 7 жыл бұрын
Gracias,Juan
@rasecmundo9934
@rasecmundo9934 4 жыл бұрын
gracias por tu video
@anyersonespana6831
@anyersonespana6831 Жыл бұрын
Muchas Gracias, Crack.
@ivandez1811
@ivandez1811 6 жыл бұрын
Si no aparece en el frame el rectángulo que dibujaron, revisen al detalle como tienen escrito su código, yo pense que tenia todo bien y al momento de ejecutar el programa no se dibuja mi rectángulo, el problema era que yo tenia escrito super.paintComponets (termina en ts) en vez de super.paintComponent (como lo tiene Juan) y al parecer el método paintComponets ya existe por algún lugar de la API y por eso eclipse no me dio error, tarde 5 minutos en encontrar el error jaja.
@alejnd5849
@alejnd5849 6 жыл бұрын
JAJA, fui a revisar porque tenía ese problema y resulta que había escrito «painComponent» en vez de «paintComponent».
@ZONADETRADINGvolium
@ZONADETRADINGvolium 6 жыл бұрын
Gracias. Me estaba volviendo loco y es que me sobraba una "n"
@gilbertrodriguez6848
@gilbertrodriguez6848 6 жыл бұрын
Si, tienes razón, ese método super.paintComponents() que termina en (ts) lo hereda de la clase Container del paquete java.awt y el método super.paintComponent() lo hereda de JComponent del paquete javax.swing
@sasademi10
@sasademi10 5 жыл бұрын
escribi paintComponet :v
@SUPERKMB1997
@SUPERKMB1997 5 жыл бұрын
Verga, muchisimas gracias, estaba tratando de escribir texto en un JPanel y no encontraba el error, se que escribiste el comentario hace mucho, pero igual me ayudo xd .
@Emilito469
@Emilito469 2 жыл бұрын
Seguimos aprendiendo!!
@felixmoya3463
@felixmoya3463 4 жыл бұрын
A mi me daba el error de add(milamina); me parece raro porque el video es de hace casi 6 anos y yo estoy aprendiendo ahora. Lo que hice para solucionarlo es usarlo como un metodo de mimarco. puse mimarco.add(milamina); y me funciono :D
@matusen
@matusen 4 жыл бұрын
Gracias! A mí me pasó igual que a ti. Saludos.
@68SYNTHMAN
@68SYNTHMAN 2 жыл бұрын
A mi también me aparecia el mismo error, y solamente instanciando desde mimarco pude arregrlar el error.
@AlbertoMK
@AlbertoMK 2 жыл бұрын
No sé si sigues leyendo los comentarios tanto tiempo después pero estoy haciendo bachillerato y la programación y en general todo lo que tiene que ver con la informática me llama mucho la atención. En particular todo lo que es dirigir un proyecto, pensar mucho como llevarlo a cabo y demás más allá de crear o perfeccionar aplicaciones, sitios web... Mi pregunta es que tú que tienes mucha más experiencia en este campo, ¿qué me recomiendas estudiar? Si ingeniería informática, de software o de sistemas o cualquier otra carrera que tenga que ver con esto y de la cual yo no me haya enterado que exista. El corte de la nota no es un problema en principio ya que soy muy buen estudiante. Espero tu respuesta, muchas gracias.
@sotosaurioo
@sotosaurioo 3 ай бұрын
dos años después te leo hahaha que decidiste?
@jmerinoljerez3316
@jmerinoljerez3316 9 жыл бұрын
me ocurrio lo mismo con add(milamina); lo hize como marcos solorzano, y fue bien...
@juanitoelchispa6492
@juanitoelchispa6492 10 жыл бұрын
Hola Juan, acabo de probar g.drawLine() y por curiosidad he probado a dibujar varias lineas en la misma lámina a ver que pasaba y funciona perfectamente, en un principio creia que había que hacer una lámina nueva para cada dibujo. Por si me tienes que corregir y a si no se puede: class DibujandoMarco extends JFrame { public DibujandoMarco() { setTitle("Prueba de dibujo en Marco"); setSize(400, 450); LaminaPintada rayas=new LaminaPintada(); add(rayas); } } class LaminaPintada extends JPanel { public void paintComponent(Graphics g) { super.paintComponent(g); g.drawLine(50, 50, 250, 300); g.drawLine(50, 30, 125, 300); g.drawLine(50, 30, 325, 200); } } Un saludo Juan, veo que me pasa lo que a ti, no me canso.
@pildorasinformaticas
@pildorasinformaticas 10 жыл бұрын
Juanito elchispa Hola !! No hay problema en hacer todos los dibujos que quieras en una lámina. Las láminas se utilizan para organizar las cosas pero puedes tenerlo todo en una lámina.
@EvilThePyro
@EvilThePyro 2 жыл бұрын
Hola profesor, decirte que me gusta mucho este curso y estoy aprendiendo bastante, respecto al método add() de la clase JFrame en el minuto 10:30, decir que yo estoy usando la versión de java "jdk 16" y dicho método no es estático en la clase y por tanto a mi me daba error, corrigiéndose instanciando un objeto de la clase que hereda de JFrame (en tu código sería instanciando un objeto de la clase MarcoConDibujos). Un saludo y tremendo curso🚀
@nabyblack5022
@nabyblack5022 2 жыл бұрын
a mi también me da erró y se supone que tengo la ultima me lo puedes explicar como a un principiante?
@gabrieldrv
@gabrieldrv 7 жыл бұрын
Hola Juan, desde ya y antes que nada te estoy eternamente agradecido por el curso. Es el primero que veo con una profundidad lo suficientemente interesante y en español. Tengo una duda, cuando se instancia la lamina y luego se la agrega dentro del constructor del marco. He tratado de hacerlo fuera del constructor y me da error porque?. Muchas gracias por todo. Saludos desde Argentina.
@leandrogonzalezcuello9942
@leandrogonzalezcuello9942 6 жыл бұрын
Por que no extiende de Canvas? Saludos de uruguay! Buen curso!
@ByteCodeHN
@ByteCodeHN 6 жыл бұрын
Ehh buen vídeo gracias
@JoseDeveloper
@JoseDeveloper 5 жыл бұрын
Buenas tardes. Ahora con JavaFX la cosa cambia bastante. ¿Sería tan amable de preparar un video sobre este tema? Se lo agradecería enormemente. Gracias y un saludo.
@kevinsboboda
@kevinsboboda 2 жыл бұрын
sera mejor aprender a desarrollar con JavaFX no? por que va a reemplazar a swing
@josecarmenmelolinares290
@josecarmenmelolinares290 8 жыл бұрын
Hola, primeramente quiero agradecer que elabores estos videos son de mucha utilidad y fáciles de aprender, disculpa tengo una duda con el método de la clase LaminaconFiguras llamado paintComponent de la clase padre.
@pildorasinformaticas
@pildorasinformaticas 8 жыл бұрын
+José Carmen Melo Linares ¿Y qué duda es? Un saludo
@erickyoelgonzalezurbina6270
@erickyoelgonzalezurbina6270 6 жыл бұрын
Hola, estoy usando el metodo PaintComponent(Graphics g) para escribir en el MarcoConDibujos g.drawString(String scr, int x, int y); Hago la intancia des de la clase MarcoConDibujos y despued uso el medoto add (nombre de la instancia) pero no me funciona. Que me recomiendan, no tengo ningun error de sintaxis y uso NetBeans.
@efrainespaderocanaviri3265
@efrainespaderocanaviri3265 5 жыл бұрын
Buenas una Consulta en el metodo paintComponente(Graphics g), quien nos envia ese parametro de tipo Graphics, o como debo interpretarlo, no me quedo claro eso.
@marinjrglobalhitss
@marinjrglobalhitss 6 жыл бұрын
Todavía no alcanzo a comprender cuando utilizar una Interfaz y cuando utilizar una clase. En 17:28 muestras en la gráfica que las clases Rectangle2D, Elipse2D y Line2D pertenecen o heredan de la interfaz Shape. ¿Por que utilizaron una interfaz en lugar de una clase?
@denzelcaleb7738
@denzelcaleb7738 6 жыл бұрын
Disculpe, en que capitulo esta el tema de los formularios?
@bryanosses4090
@bryanosses4090 8 жыл бұрын
¿el constructor por omision de la clase JPanel ejecuta el método paintComponent? o ¿por que ese método se ejecuta sin que lo hayamos llamado? me queda esa duda... osea se ejecuta sin escribir miLamina.paintComponent(); ¿por que?
@pildorasinformaticas
@pildorasinformaticas 8 жыл бұрын
+Bryan Osses Hola !! Porque es un método que se invoca automáticamente al crear un JFrame. Y también cuando se realiza cualquier operación con el JFrame tal como redimensionar, minimizar, maximizar etc. De igual forma que hay reglas que son porque si, por ejemplo que no sea necesario importar el paquete java.lang al utilizar sus clases, hay una regla establecida para el método paintComponent y es que es invocado automaticamente. Un saludo
@lmga4159
@lmga4159 5 жыл бұрын
Hola Juan, los métodos drawLine(), drawRect() etc están declarados en la API como abstractos. Mis preguntas son: ¿Cuál es la clase que los implementa?¿No habría que sobreescribirlos? ¿Por qué es que funcionan? ¿Los componentes swing tienen sobreescritos dichos métodos? Gracias por el curso, saludos.
@angelfigueroa6662
@angelfigueroa6662 4 жыл бұрын
Es la clase Jpanel, los sobreescribe de esa clase. Lo explicó en el vídeo anterior
@madridx2010
@madridx2010 6 жыл бұрын
Hola Juan, ¿y si quisiera añadir varios paneles al JFrame ? tendria que crear una clase que heredara de JPanel por cada uno? o se puede hacer desde una sola clase? muchas gracias
@laurafernandez4586
@laurafernandez4586 7 жыл бұрын
Hola, excelente curso!!! Estoy encantada con cómo explicas!! Gracias por dedicar tu tiempo! Tengo una duda un poco tonta, pero que me tiene un poco bloqueada. En el video hemos instanciado LaminaConFiguras. ¿pero en qué momento se ha llamado al método paintComponent? ¿Y dónde hemos definido 'g'? El código es como en el video: package graficos; import java.awt.*; import javax.swing.*; public class PruebaDibujo { public static void main(String[] args) { // TODO Auto-generated method stub MarcoConDibujos mimarco = new MarcoConDibujos(); } } class MarcoConDibujos extends JFrame { public MarcoConDibujos() { setTitle("Dibujo"); setSize(400, 400); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); LaminaConFiguras milamina = new LaminaConFiguras(); add(milamina); } } class LaminaConFiguras extends JPanel { public void paintComponent(Graphics g){ super.paintComponent(g); g.drawRect(50, 50, 200, 200); g.drawLine(100, 100, 300, 200); g.drawArc(50, 100, 100, 200, 120, 150); } } Muchas gracias!
@pildorasinformaticas
@pildorasinformaticas 7 жыл бұрын
Hola. Gracias por el comentario. Es una duda que me habéis hecho muchos y es una duda lógica. El método paintComponent tiene la particularidad de que es llamado/invocado automáticamente. Cada vez que ejecutas el programa el método es llamado automáticamente por el intérprete Java, al igual que cuando redimensionas un JFrame, minimizas etc. cada vez que realizas una de estas acciones, el método paintComponent es invocado. Un saludo!!
@vangodp
@vangodp 9 жыл бұрын
Saludos, lo primero que quiero es dar las gracias por los videos de una calidad increible, eres un maquina. ¡Gracias! Tengo una pregunta... ¿Las laminas no tienen transparencia? Al mesclar la lamina de letras con la lamina de drawRect solo sale la ultima =/.
@isaigm
@isaigm 5 жыл бұрын
Hey, creo que te vi en el canal del tío Iki xD, sabes si hay alguna manera de que, por ejemplo, esto funcione: Lo que busco es ver si es posible cambiar la posición de los rectángulos y que después se vean con su nueva posición, funciona, pero cuando Java quiere, nada como SFML jaja add(new JPanel() { public void paintComponent(Graphics g) { super.paintComponent(g); for(Rectangle r: rects) g.drawRect(r.x, r.y, r.width, r.height); rects.get(0).x = 900; } });
@dannybombastic
@dannybombastic 8 жыл бұрын
+pildorasinformaticas he estado mirando y el la parte de la "clase" String solo dimos como manejar cadenas de caracteres y algunos de sus metodos pero todavía no hemos dado como grabar toda una tabla por ejemplo de un array en un archivo con el cual poder recuperar los datos de dicho array. gracias por re dirigirme . solo espero que en algún momento la demos esa clase por que si quiero crear cosas después tengo que estar metiendo valores todo el rato para probar. no se si me explico disculpa lo único que quiero hacer es algún tipo de aplicación que gestione algunos datos que yo le meta por teclado los almacene en un archivo como si fuera una base de datos y yo los pueda ver después . hasta ahora se los hemos estado metiendo de una forma predefinida o creando arrays de X números de indices disculpa por el chorro a leer.
@miguelcelis2737
@miguelcelis2737 3 жыл бұрын
Si presentan errores con el rectángulo yo lo solucione porque el IDE no me estaba reconociendo el JPanel como un Override, lo que hice fue borrarlo y volver a hacer la clase de JPanel hasta que me aparecia el Override.
@joeljerezgomez3950
@joeljerezgomez3950 7 жыл бұрын
Hola! Felicitarte por tus vídeos, son de lo mejor que he encontrado y se entiende a la perfección. Una pregunta, es relevante dónde se pongan los métodos setVisible y setDefaultCloseOperation? Quiero decir, es mejor ponerlas en el main o introducirlas directamente en el constructor del marco? O es simplemente una cuestión de gustos? Gracias de antemano!
@pildorasinformaticas
@pildorasinformaticas 7 жыл бұрын
Depende del programa. Si tu aplicación tiene un único marco da igual. pero asegúrate de que la instrucción setVisible(true) aparece en último lugar tanto si la colocas en el constructor como si la colocas en el main. Yo cometí el fallo en uno de los vídeos de no colocar la instrucción al final. Esto ocasiona que los elementos del JFrame no se vean a no ser que redimensiones o muevas la ventana. Un saludo!!
@joeljerezgomez3950
@joeljerezgomez3950 7 жыл бұрын
Vale muchas gracias! ^^
@rafaelcesar6656
@rafaelcesar6656 9 жыл бұрын
Muito boa essas aulas sobre 2D uma pergunta também existe alguma classe 3D ?
@pildorasinformaticas
@pildorasinformaticas 9 жыл бұрын
Rafael Cesar Não que eu saiba. saudações
@CVSELCAPO
@CVSELCAPO 2 жыл бұрын
uma delicia
@stefanyruiz5167
@stefanyruiz5167 6 жыл бұрын
tengo la version 4.4 nose como puedo agregar el jpanel al frame :(
@ASURAPRIEST19
@ASURAPRIEST19 5 жыл бұрын
tengo una super duda, al instanciar a miLamina, por que no se llama al metodo paintcomponent? todos los otros metodos como setters o getters se tenian que llamar primero para que se activaran, por que no paintcomponent? evidentemente se que daria error pues pediria un parametro y ahi me atore yo haciendolo por mi cuenta, pero quiero entender como es que ese metodo, se activo
@giovannidanielbritolopez1030
@giovannidanielbritolopez1030 4 жыл бұрын
Hola amigo tengo una duda, tengo 3 paneles en un frame, pero quiero dibujar en el JPanel que se llama Dibujo, como puedo hacer para dibujar solo en ese JPanel?... Me encantan tus videos hermano gracias.
@damianbajofer9169
@damianbajofer9169 8 жыл бұрын
Tengo una pregunta, y se que es demaciado pronto para preguntar algo como esto, pero es que por este motivo he decidido aprender java y la pregunta en fin es ¿Aprenderemos a conectar el programa con una DB?, Y con esto me refiero a poder hacer consultas, inserciones etc. Saludos y gracias por un video mas :)
@pildorasinformaticas
@pildorasinformaticas 8 жыл бұрын
+damian bajofer Hola!! Echa un vistazo a los vídeos 200 en adelante y verás. ;) Un saludo
@iNrelevante
@iNrelevante 9 жыл бұрын
Me ocurre algo curioso cuando ejecuto tanto el texto del vídeo anterior como el recuadro de este,: Resulta que cuando ejecuto "No siempre" me aparece el texto, cuadrado...etc (y digo no siempre porque a veces si). En los caso en que no me apetece nada, cuando modifico el tamaño de la ventana con el ratón o maximizo la ventana SI aparecen, Es extraño porque alrededor de un 50% de veces me va todo genial, pero en cambio, la otra mitad de veces no me aparece nada hasta que no hago lo que he explicado antes. Si sabe alguien lo que puede estar ocurriendo.... Gracias.
@andresdavila1316
@andresdavila1316 4 жыл бұрын
segui el tutorial al pie de la letra y cada vez que se abre la ventana, tengo que cambiarle de tamanio para que aparezca el texto.
@mariobros6039
@mariobros6039 3 жыл бұрын
sabes como rellenar un cuadrado con lineas por dentro????
@ezequielvalera3261
@ezequielvalera3261 5 жыл бұрын
Tengo una humilde opinión sobre este tema y que aunque es importante saber ese tema de las figuras y el graphic 2d quizás no es algo tan nesecario de aprender lo digo porque ya hay programas de diseño gráfico que lo hacen y es más fácil pero claro entiendo que usted lo enseña para que conozcamos Java y para ver sus funciones al menos es mi opinión como novato en esto
@LaBibliotecaMusical
@LaBibliotecaMusical 8 жыл бұрын
Se utiliza en algún momento la clase graphics para un proyecto real? En que momento utilizarías un rectángulo o un elipse dentro de un programa?
@pildorasinformaticas
@pildorasinformaticas 8 жыл бұрын
+Ser Gio En el momento que tengas que dibujar algo en un proyecto real. Se me ocurre así a bote pronto: un programa de ajedrez en el que tengas que dibujar el tablero. Y dirás: "pero podría utilizar una imagen". Y yo respondería: "Sí, pero ocuparía más memoria". Un saludo!!
@LaBibliotecaMusical
@LaBibliotecaMusical 8 жыл бұрын
pildorasinformaticas excelente respuesta, sos un gran maestro.
@inversorpaciente
@inversorpaciente 6 жыл бұрын
Hay algo que no entiendo. Instancias un objeto de la clase LaminaConFiguras, pero no ejecutas el método paintComponent en ningún momento, entonces en teoría no se podría ejecutar la acción drawRect,y sin embargo si se ejecuta, porque se crea el cuadrado en el frame cuando ejecutas el método add.
@pildorasinformaticas
@pildorasinformaticas 6 жыл бұрын
El método paintComponent() es un tanto especial ya que tiene la particularidad de que se invoca automáticamente. No es necesario que sea llamado desde otro lugar del código. Es invocado al ejecutar el programa pero también cuando redimensionas la ventana, minimizas maximizas etc. Y tiene sentido que sea así para redibujar la información de la lámina cuando sea necesario. Un saludo!!
@NazHarvat
@NazHarvat 8 жыл бұрын
Buenas! Tengo una pequeña duda. ¿Cómo es que podemos usar un objeto "g" de la clase Graphics en el método paintComponent si no lo hemos creado?
@pildorasinformaticas
@pildorasinformaticas 8 жыл бұрын
Hola !! El objeto está creado con Graphics g, de la misma forma que puedes crear un objeto de tipo String con la instrucción String z; Lo que no está es instanciado, pero ese es otro tema. Un saludo!!
@NazHarvat
@NazHarvat 8 жыл бұрын
Gracias! De todas formas, creo que no entiendo eso, porque el concepto de "objeto no instanciado" no me cuadra, ya que un objeto es una instancia de una clase.
@pildorasinformaticas
@pildorasinformaticas 8 жыл бұрын
String z; Empleado Juan; ¿Son esto instancias? Instancia es cuando utilizas la instrucción new para llamar al constructor. Si no lo usas no hay instancia.
@stelin41_es
@stelin41_es 9 жыл бұрын
y tampoco se me detiene el programa al cerrar la ventana, y lo hice igual
@johanberrio7365
@johanberrio7365 7 жыл бұрын
Por que estas instanciando el objeto dentro del constructor y no dentro de main?
@pildorasinformaticas
@pildorasinformaticas 7 жыл бұрын
Tengo 850 vídeos en el canal y no recuerdo el código de este vídeo en concreto. Si me dices minuto y segundo del vídeo donde aparece la instrucción te lo podré aclarar. Un salduo!!
@Helmut83
@Helmut83 9 жыл бұрын
***** gracias por compartirlo. Me anduvo perfecto, pero tengo una pregunta: el método paintComponent de la clase LaminaConFiguras, cuándo se ejecuta? Porque estuve revisando el código pero no veo ninguna llamada al método. Cómo es que se ejecuta igual?
@pildorasinformaticas
@pildorasinformaticas 9 жыл бұрын
Helmut83 El método paintComponent no hace falta invocarlo para que se ejecute. Lo hace automáticamente al hacer visible una lámina, también al minimizar, redimensionar etc. Un saludo
@Helmut83
@Helmut83 9 жыл бұрын
pildorasinformaticas Gracias. Y perdoná que me ponga hinchapelotas, pero eso por qué es así? ¿Porque su ejecución está en el constructor de JPanel y cada vez que se instancia un objeto JPanel o una subclase se ejecuta ese método?
@pildorasinformaticas
@pildorasinformaticas 9 жыл бұрын
El método paintComponent pertenece a la clase JComponent. La clase JPanel hereda de JComponent por lo que tiene este método de forma implícita por herencia. Cada vez que tu creas un JPanel, lo minimizas, lo redimensionas etc estás ejecutando el método repaint() (también perteneciente a JComponent) ¿Qué hace repaint? Llamar a paintComponent, encargado de dibujar los elementos en la lámina. Si quieres actualizar el contenido de una lámina sin necesidad de redimensionar, minimizar etc. entonces debes llamar tú al método repaint(). Este llamará a paintComponent y el efecto será el de "refresco" de pantalla. Espero haber aclarado algo. Un saludo
@aleacostac
@aleacostac 9 жыл бұрын
pildorasinformaticas Gracias por esta explicación. Yo había deducido que este método era llamado automáticamente, pero no tenía toda esta información que has dado en tu respuesta.
@lucianorobles7951
@lucianorobles7951 Жыл бұрын
¿Como se hace para que en un metodo aparezcan (int x, int y, int startAngle), en vez de (arg0, arg1, arg2...).
@buchdev
@buchdev 8 жыл бұрын
Que tal compañero, muy buenisimos tus videos, me han ayudado mucho, pero una pregunta: Por que colocas varias clases en el mismo archivo java? yo tenia entendido que se usaba una clase por archivo .java
8 жыл бұрын
El ya lo explicó en videos pasados. Lo hace simplemente para facilitar el aprendizaje, si te das cuenta en el mismo fichero se usan varias clases pero no es la manera óptima de trabajar (El mismo profesor lo dice), la idea de colocar todo en un mismo fichero (como ya lo mencioné) es solo por fines educativos. Por otro lado, si te fijas en el directorio bin/graficos/ ahí verás que las mismas clases que aparecen en un mismo fichero, esta vez aparecen en ficheros .class separados, pero ese trabajo ya lo realiza el compilador de Java. Espero haberte ayudado con una gotita del conocimiento que estoy adquiriendo aquí. Saludos.
@rozoneri
@rozoneri 9 жыл бұрын
Hola genio, tengo una pregunta: supongo que paintComponent se llama en el constructor o estoy mal? lo digo porque cuando adhieres la lamina no haces uso de dicha función por ende creo que es eso lo que pasa,no? muchas gracias por tu atención.
@pildorasinformaticas
@pildorasinformaticas 9 жыл бұрын
Easylisimo Hola !! Sí. Cuando llamamos a paintComponent lo que hacemos realmente es sobreescribir el método paintComponent de la clase JPanel. Dicha clase ya lleva su método paintComponent encargado de hacer su trabajo. Un saludo
@rozoneri
@rozoneri 9 жыл бұрын
Gracias por tu respuesta y un saludo desde Colombia y muchas gracias por el tiempo que le dedicas a enseñar.
@kingnelson3553
@kingnelson3553 6 жыл бұрын
Hola profe, estaba realizando este ejemplo y pues me encontré con algo. yo he trabajado todo este curso en Neatbeans, desde el primer video, pero me marca esta advertencia al recurrir a cualquiera de los metodos de la clase JFrame desde el constructor de mi clase MarcoConDibujos, al ver por que marca esa advertencia dice lo siguiente: "Calling methods that can be overridden can be dangerous in the contructor because in the moment when the overridden method is called the object is not fully initialized." el programa funciona bien. pero tengo la duda de ¿Por que da esa advertencia y como quitarla?
@pildorasinformaticas
@pildorasinformaticas 6 жыл бұрын
Esa advertencia sale porque en el constructor tienes llamadas a métodos dentro de la misma clase. Si dichos métodos no son final o private, estos podrían ser sobreescritos desde el constructor justo cuando se está construyendo el objeto. De ahí viene la advertencia de NetBeans. Puedes quitar la advertencia haciendo que los métodos que llamas desde el constructor sean private o final. Un saludo!
@kingnelson3553
@kingnelson3553 6 жыл бұрын
(NO SE SI LO HICE BIEN) muchisimas gracias pude hacer final los metodos setVisible y setTitle pero al llegar al metodo setBounds me marcaba un errorlo hice de la siguiente manera package aplicacionesgraficas; import javax.swing.JFrame; public class Ventana extends JFrame{ public Ventana(){ setTitle("Colores"); setVisible(true); setBounds(300,250,250,250); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); RectanguloConCirculo rc = new RectanguloConCirculo(); add(rc); } @Override public final void setTitle(String c){ super.setTitle(c); } @Override public final void setVisible(boolean b){ super.setVisible(b); } } como esto no me resulto para el metodo setBounds se me ocurrio llamar directamente al constructor de la clase padre con la palabra super quedandome asi y quitando el error pero no se si es correcto. package aplicacionesgraficas; import javax.swing.JFrame; public class Ventana extends JFrame{ public Ventana(){ super.setTitle("Colores"); super.setVisible(true); super.setBounds(300,250,250,250); super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); RectanguloConCirculo rc = new RectanguloConCirculo(); super.add(rc); } }
@perestroika221
@perestroika221 8 жыл бұрын
Entendi le explicacion y todo, pero tengo un problema en el momento de usar el add. Lo que sucede es que cuando yo quiero poner mas de una lamina en el constructor del JFrame sucede que solo aparece uno de ellos, entonces tengo una duda ¿ Hay alguna manera de poder insertar mas de un add dentro del constructor del JFrame?
@pildorasinformaticas
@pildorasinformaticas 8 жыл бұрын
Puedes insertar todas las láminas que quieras con add. En la parte dedicada a los layouts en el curso se ve cómo hacer esto. Un saludo!!
@perestroika221
@perestroika221 8 жыл бұрын
muchas gracias :)
@nicol4s333
@nicol4s333 5 ай бұрын
no se si importe mal alguna libreria o que, pero no funcioa, entonces probe en el proyecto anterior y si salia el cuadrado
@santa34829
@santa34829 7 жыл бұрын
una pregunta 100,100 lo entiendo pero tu dices que 300,200 la y va a hacia abajo, no se supone que 200 es mayor q 100 y esa y iria hacia arriba, no entiendo
@Alan-ih3ds
@Alan-ih3ds 5 жыл бұрын
Hola, una consulta, me quedo dando vueltas el parámetro "Graphics f" que recibe el método "paintComponent". Quisiera saber de donde sale ese parámetro o como funciona. Saludos!!!
@wernergabrielus9005
@wernergabrielus9005 5 жыл бұрын
Alan Santillan x2
@robertoberrocal9102
@robertoberrocal9102 3 жыл бұрын
@@wernergabrielus9005 ese método debe llevar como parámetro Graphics f, ya que la clase JComponent es abstract y el profesor lo esta sobrescribiendo cuando usas una clase abstracta debes sobrescribir sus métodos y en si el parámetro te ayuda a acceder a los métodos de la clase Graphics como lo es el método drawString().
@clank9238
@clank9238 4 жыл бұрын
no me da ningun tipo de error y sin embargo no me dibuja nada dentro del marco, alguien sabe porque puede ser ?
@andresdiaz2737
@andresdiaz2737 6 жыл бұрын
Hola Juan, una consulta, ¿Por qué extiendes a JPanel?
@jordyzamata6347
@jordyzamata6347 6 жыл бұрын
hereda o extiende de JPanel para poder sobrescribir el método "paintComponent(Graphics objeto)", la cual recibe como parámetro un objeto de tipo "Graphics", y esta clase (Graphics) nos ayuda a dibujar lo que se vio en este vídeo y en el anterior, espero haber aclarado al menos un poco tu duda, compañero.
@eltiobarrio
@eltiobarrio 7 жыл бұрын
me salio el mismo error no me deja añadir el add nose si es porque uso net beans ya actualize el ide
@pildorasinformaticas
@pildorasinformaticas 7 жыл бұрын
El IDE no suele ser el motivo de ese tipo de errores. Espero que des con el problema. Un saludo
@eltiobarrio
@eltiobarrio 7 жыл бұрын
lo escribi como frame.add(nombredelobjeto); alparecer ya es diferente
@anaalvarez3728
@anaalvarez3728 6 жыл бұрын
hola Eric, a mi me pasa lo mismo, lo pudiste resolver?
@1688amg
@1688amg 6 жыл бұрын
eriick9631 hola el método add lo pusieron dentro de la clase dnd se setea el marco?
@luisromeroreyes9810
@luisromeroreyes9810 6 жыл бұрын
otra consulta por que llamastes al metodo super ????????
@pildorasinformaticas
@pildorasinformaticas 6 жыл бұрын
El método super() llama siempre al método correspondiente de la clase padre. Se explica en el curso. Un saludo!
@braulioalejoaguilar4566
@braulioalejoaguilar4566 6 жыл бұрын
No me aparece el cuadro Que puedo hacer?
@Maribela1974
@Maribela1974 6 жыл бұрын
Hola Juan, He seguido tu video al detalle, como todos los que haces pero en esta ocasion no me muestra el rectangulo. Tu podrias echar un vistazo a mi codigo? Gracias package Ejercicio3; import java.awt.Color; import java.awt.Container; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.Rectangle2D; import javax.swing.*; public class ventana extends JFrame implements ActionListener{ JFrame ventana; JFrame milamina; JPanel panel; JButton boton1, boton2, boton3; JLabel etiqueta1, etiqueta2, etiqueta3, etiqueta4, etiqueta5, etiqueta6, etiqueta7; JTextField txtcaja1, txtcaja2, txtcaja3, txtcaja4, txtcaja5, txtcaja6, txtcaja7; Container Contentpane; public ventana(){ iniciarComponentes(); //llamamos al metodo iniciar componentes para que el panel funcione //Titulo de nuestra ventana ventana = new JFrame(); setTitle("Administración del Sorteo de Loteria primitiva"); panel = new JPanel(); //tamaño y localizacion setBounds(500,500,500,450); Contentpane= new JPanel(); lamina milamina = new lamina(); add(milamina); // Color del panel Color colorpanel = new Color (217,236,223); Contentpane.setBackground(colorpanel); setContentPane(Contentpane); Contentpane.setLayout(null); // Creamos los botones y los colocamos en el panel. JButton boton1 = new JButton("Añadir"); JButton boton2 = new JButton("Listar"); JButton boton3 = new JButton("Cerrar"); boton3.setActionCommand("Cerrar"); boton3.addActionListener(this); boton1.setBounds(380, 50, 80, 30); boton2.setBounds(380, 90, 80, 30); boton3.setBounds(380, 340, 80, 30); // Creamos las etiquetas y les damos posicion, tamaño y texto JLabel etiqueta1 = new JLabel("Fecha Sorteo "); JLabel etiqueta2 = new JLabel("N1"); JLabel etiqueta3 = new JLabel("N2"); JLabel etiqueta4 = new JLabel("N3"); JLabel etiqueta5 = new JLabel("N4"); JLabel etiqueta6 = new JLabel("N5"); JLabel etiqueta7 = new JLabel("Complementario"); etiqueta1.setBounds(25, 25, 100, 20); etiqueta2.setBounds(115, 25, 20, 20); etiqueta3.setBounds(135, 25, 20, 20); etiqueta4.setBounds(155, 25, 20, 20); etiqueta5.setBounds(175, 25, 20, 20); etiqueta6.setBounds(195, 25, 20, 20); etiqueta7.setBounds(215, 25, 100, 20); //Creamos las cajas de texto y las posicionamos y les ponemos el tamaño JTextField txtcaja1 = new JTextField(); JTextField txtcaja2 = new JTextField(); JTextField txtcaja3 = new JTextField(); JTextField txtcaja4 = new JTextField(); JTextField txtcaja5 = new JTextField(); JTextField txtcaja6 = new JTextField(); JTextField txtcaja7 = new JTextField(); txtcaja1.setBounds(25, 55, 80, 20); txtcaja2.setBounds(115, 55, 20, 20); txtcaja3.setBounds(135, 55, 20, 20); txtcaja4.setBounds(155, 55, 20, 20); txtcaja5.setBounds(175, 55, 20, 20); txtcaja6.setBounds(195, 55, 20, 20); txtcaja7.setBounds(215, 55, 20, 20); //Añadimos, etiquetas, botones y cajas de texto add(etiqueta1); add(etiqueta2); add(etiqueta3); add(etiqueta4); add(etiqueta5); add(etiqueta6); add(etiqueta7); add(boton1); add(boton2); add(boton3); add(txtcaja1); add(txtcaja2); add(txtcaja3); add(txtcaja4); add(txtcaja5); add(txtcaja6); add(txtcaja7); //Con el siguiente metodo colocamos la ventana en el centro de la pantalla setLocationRelativeTo(null); } public void iniciarComponentes(){ JPanel panel = new JPanel(); //vamos a colocar el panel sobre la ventana. this.getContentPane().add(panel); panel.setBackground(new Color(217,236,223)); } //Metodo para crear el Evento de Cerrar la ventana al pulsar el boton @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getActionCommand().equals("Cerrar")){ System.exit(0); } } } //Dibujamos en el Frame con la clase Graphics class lamina extends JPanel{ public void paintComponent(Graphics g){ super.paintComponents(g); /*Graphics2D g2 =(Graphics2D)g; //this.setBackground(Color.BLACK); Rectangle2D rectangulo = new Rectangle2D.Double(10, 50, 420, 460); g2.setBackground(Color.BLACK); g2.draw(rectangulo);*/ g.drawRect(10, 50, 420, 460); setLayout(null); } } ___________________________________________________________________________ package Ejercicio3; import javax.swing.JFrame; public class Principal{ public static void main (String[]Args){ ventana v1 = new ventana(); //hacemos la ventana visible v1.setVisible(true); v1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
@pablo384
@pablo384 8 жыл бұрын
desconosco la razon pero no me aparece el texto en la lamina que cree y nose cual seria el problema, tengo mi codigo como el del video y aun asi no aparece, ni el texto. saludos :3
@pildorasinformaticas
@pildorasinformaticas 8 жыл бұрын
Comprueba que la instrucción setVisible(true) la tienes puesta en último lugar dentro del constructor (yo me equivoqué en un vídeo y no la puse al final. Esto hace que no se vea nada). Un saludo!!
@pablo384
@pablo384 8 жыл бұрын
XD gracias, ahora si se ve, jeje y porcierto, muy buenos tutoriales, hasta que nivel recomiendas que aprenda para proceder al curso de android?
@pildorasinformaticas
@pildorasinformaticas 8 жыл бұрын
Pues es recomendable que veas eventos, threads.... y a partir de ahí cuanto más, mejor. Un saludo
@pablo384
@pablo384 8 жыл бұрын
+pildorasinformaticas muchísimas gracias por responder y por tu trabajo, es el mejor curso que e visto hsta ahora tratare de aprender todo lo posible java, especialmente base de datos ya que es algo esencial. #android #java 😀
@MiquelRosselloMelis
@MiquelRosselloMelis 7 жыл бұрын
Hola buenas, me sigue sin aparecer nada en la lamina. Tengo la instrucción setVisible(true); al final del constructor del marco. No entiendo por qué no me funciona.
@nayrapl7215
@nayrapl7215 2 жыл бұрын
Desde el asistente no me salen todos los metodos, a veces solo me sale lor heredados de la clase Object y otras ninguno, sin embargo si acabo escribiendo el metodo que quiero utilizar no tengo error. Alguien podria indicarme a que se debe, ya que me resulta interesante que el asistente me de un listado de los metodos disponibles para cuando empiece a programar por mi cuenta. (Todo el texto sin acentos debido a que escribo desde un teclado ingles,me sangra la vista!) Gracias de antemano.
@undesconocidomas5131
@undesconocidomas5131 3 жыл бұрын
¿Por qué se puede hacer un casting del objeto g a uno g2 si la clase Graphics2D hereda de Graphics. eso no debería ser posible por la regla Es un(siempre) no?
@ushiookasaki
@ushiookasaki 3 жыл бұрын
La verdad es que el metodo paintComponent desde que se introdujo Graphics2D te da un Graphics2D como parametro de la clase pero por retrocompatibilidad hacia atras se deja como tipo Graphics pero en definitiva cuando tu usas la instancia de "g" en realidad es un objeto Graphics2D. Por eso es posible castarlo a otro objeto porque como bien dices no es posible hacer un casting de una clase mas compleja.
@FernandoMartinez-qt6ls
@FernandoMartinez-qt6ls 3 жыл бұрын
Todo bien con el código pero no me agrega la figura. Ayudaaaaaa
@johandavid1912
@johandavid1912 2 жыл бұрын
escribo el codigo exactamente igual pero no aparece el cuadrado.
@luisromeroreyes9810
@luisromeroreyes9810 6 жыл бұрын
HOLA PROFE PORQUE SOBREESCRIBES EL METODO " paintComponent" ???????????????????
@CristianRomero-up1nj
@CristianRomero-up1nj 6 жыл бұрын
muy similar a las canvas de JS, ah?
@Jk.len.rin7
@Jk.len.rin7 Жыл бұрын
Me marca error en el main
@alphaalfre
@alphaalfre 2 жыл бұрын
👀
@jorgeb2789
@jorgeb2789 7 жыл бұрын
Las láminas en sí es el mismo concepto que las clases. No son necesarias, solo sirven para organizar y reutilizar. Con que no son necesarias me refiero a que no es necesario crear diferentes clases para hacer un programa.
@miguelmendezliebana2551
@miguelmendezliebana2551 6 жыл бұрын
buenas otra vez jaja los metoos de la clase grapics2D dicen que son abstractos , segun tenia entendido los metodos abstractos son: a) No tiene cuerpo (llaves): sólo consta de signatura con paréntesis. b) Su signatura termina con un punto y coma. c) Sólo puede existir dentro de una clase abstracta. De esta forma se evita que haya métodos que no se puedan ejecutar dentro de clases concretas. Visto de otra manera, si una clase incluye un método abstracto, forzosamente la clase será una clase abstracta. d) Los métodos abstractos forzosamente habrán de estar sobreescritos en las subclases. Si una subclase no implementa un método abstracto de la superclase tiene un método no ejecutable, lo que la fuerza a ser una subclase abstracta. Para que la subclase sea concreta habrá de implementar métodos sobreescritos para todos los métodos abstractos de sus superclases. bien , como es posible que estos tengan parametros y tengan contenido, si en la api dice que son abstractos.
@jordyzamata6347
@jordyzamata6347 6 жыл бұрын
tengo la misma duda :s , pero creo que es porque originalmente es abstracta pero en esa clase ya se implemento el cuerpo de dicho método (osea ya dejaría de ser abstracto ese método), por alguna razón en la api la siguen poniendo abstracta... si estoy muy lejos de la verdad por favor que alguien me ilumine, gracias.
@rafaelantoniolealbohorquez3816
@rafaelantoniolealbohorquez3816 5 жыл бұрын
Las clases abstractas implican que NO se pueden instanciar directamente, osea con el operador new, es por eso que Rectangle2D no se instancia porque es abstracta, pero la clase interna Rectangle2D.Dobule NO es abstracta pero hereda todo de Rectangle2D por lo tanto si la puedo instanciar y crear un objeto a partir de ella junto con todos sus metodos. ahora bien el hecho que yo instancie o dicho de otra manera cree un objeto de la Clase Rectangle2D.Double no implica que deba sobreescribir los metodos. ya que las clases abstractas como las interfaces obligan la sobreescritura es cuando aplican el principio de herencia. osea cuando yo creo una clase nueva que hereda de una clase abstracta o implementa una interfaz.ahi si debo sobreescribir. y al momento de sobreescribir los metodos abstractos de la clase abstracta o de la interfaz, estoy en plena libertad de definirlos sin ser abstractos..
@brandojeanpiercalderonpuen3850
@brandojeanpiercalderonpuen3850 3 жыл бұрын
Primer comentario del 2021 :v
@dagneralenaguerra2095
@dagneralenaguerra2095 8 жыл бұрын
e echo todo lo que iso en el video pero no me sale el dibujo del rectangulo... que puede estar pasando... saludos lo segui paso a paso...y nada...
@pildorasinformaticas
@pildorasinformaticas 8 жыл бұрын
+Dagner Alena Guerra Copia y pega todo tu código por aquí para que pueda indicarte el error. Un saludo
@dagneralenaguerra2095
@dagneralenaguerra2095 8 жыл бұрын
hola, gracias por contestar... aqui te pongo todo el codigo : package graficos; import java.awt.*; import java.awt.geom.*; import javax.swing.*; public class PruebaDibujo { public static void main(String[] args) { // TODO Auto-generated method stub //intanciamos MarcoConDibujos mimarco = new MarcoConDibujos(); mimarco.setVisible(true); mimarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } class MarcoConDibujos extends JFrame{ //constructor public MarcoConDibujos() { setTitle("Prueba de Dibujos"); setSize(400, 400); //intanciar LaminaConFiguras milamina = new LaminaConFiguras(); add(milamina); } } //crear lamina class LaminaConFiguras extends JPanel{ //sobreescribir la clase paintcomponent de la clase jpanel public void painComponent (Graphics g){ super.paintComponent(g); //dibujar rectangulo. g.drawRect(50, 50, 200, 200); // g.drawLine(100, 100, 300, 200); Graphics2D g2=(Graphics2D) g;// refundicion Rectangle2D rectangulo = new Rectangle2D.Double(100,100,200,150); g2.draw(rectangulo); Ellipse2D elipse= new Ellipse2D.Double(); elipse.setFrame(rectangulo); g2.draw(elipse); } } gracias por tu ayuda..
@pildorasinformaticas
@pildorasinformaticas 8 жыл бұрын
Mira esta línea de la clase LaminaConFiguras: public void painComponent (Graphics g){ Mírala detenidamente. ¿Está bien escrita?? He estado 15 min mirando el código hasta dar con el error. Saludos
@fabricadelexito1496
@fabricadelexito1496 7 жыл бұрын
vaya ! cometi el mismo error, quien diria que un comentario de hace un año me serviria para corregir mi error
@zenosama1118
@zenosama1118 5 жыл бұрын
Por qué no divides el código en mas de un archivo java??, es algo que me ha chirriado mucho durante todos estos vídeos de interfaces gráficas, sobretodo porque no consigo hacerlo, me da error al crear las clases en otro archivo, debe ser por alguna tontería, en fin ... seguiré intentándolo ;c
@pildorasinformaticas
@pildorasinformaticas 5 жыл бұрын
No te preocupes mucho por esto. Se ven numerosos ejemplos más adelante en el curso de cómo dividir un programa java en varios ficheros. Incluso con interfaces gráficas. En general, cuando un programa java es sencillo (como los que estamos viendo hasta esta altura del curso) es más sencillo escribirlo todo en un único fichero fuente. Cuando el programa es más complejo, entonces convienen "modular" tal y como he explicado en el curso y como decía hay numerosos ejemplos en el curso. Un saludo!
@hectorpailacura5414
@hectorpailacura5414 7 жыл бұрын
como rompe las bolas wix
@pildorasinformaticas
@pildorasinformaticas 7 жыл бұрын
Cierto !! Pero a mi me viene bien...
@hectorpailacura5414
@hectorpailacura5414 7 жыл бұрын
entonces no me quejo. con mysql puedo crear bases de datos local?
@pildorasinformaticas
@pildorasinformaticas 7 жыл бұрын
En tu servidor local de pruebas sí. Pero sigue siendo un "servidor" de pruebas aunque estén en local. Un saludo!!
@hectorpailacura5414
@hectorpailacura5414 7 жыл бұрын
y que me recominda utilizar? soy usuario linux a si que acces queda descartado
@humbertotoledo6077
@humbertotoledo6077 6 жыл бұрын
A mi no me aparece ningún dibujo >:v
@stelin41_es
@stelin41_es 9 жыл бұрын
a mi no me aparece el cuadrado
@pildorasinformaticas
@pildorasinformaticas 9 жыл бұрын
Stevan L. Hola !! Para poder ayudar necesitaría que copiaras y pegaras tu código por aquí. Un saludo
@stelin41_es
@stelin41_es 9 жыл бұрын
pildorasinformaticas ok aqui lo tienes: package graficos; import java.awt.Graphics; import javax.swing.JFrame; import javax.swing.JPanel; public class PruebaDibujo { public static void main(String[] args) { MarcoConDibujos mimarco=new MarcoConDibujos(); mimarco.setVisible(true); mimarco.setExtendedState(JFrame.EXIT_ON_CLOSE); } } class MarcoConDibujos extends JFrame{ public MarcoConDibujos(){ setTitle("prueba de Dibujo"); setSize(400,400); LaminaConFiguras milamina=new LaminaConFiguras(); add(milamina); } } class LaminaConFiguras extends JPanel{ public void PainComponent(Graphics g){ super.paintComponent(g); //g.drawRect(50, 50, 200, 200); //g.drawLine(100, 100, 200, 300); g.drawArc(50, 100, 100, 200, 120, 150); } }
@DodmanTICS
@DodmanTICS 9 жыл бұрын
+Stevan L. Amigo el error es de Sintaxis public void PaintComponent(Graphics g){
@stelin41_es
@stelin41_es 9 жыл бұрын
Dodman Enrique Mendez Madrigal gracias por la ayuda pero no se arreglo pero gracias de todas maneras por intentar ayudarme
@Su-ti8vr
@Su-ti8vr 9 жыл бұрын
+pildorasinformaticas Muchísimas gracias por dar este curso tan bueno... eres muy buen maestro, pues este Stevan L. es mi hijo, y solo tiene 10 añitos... y está super enganchado al curso... Él empezó hace sólo 3 meses, y está en el cap. 61... Bueno, sin contar que estuvimos un mes de vacaciones... entonces sería 2 meses de curso :)
@santiagocascolucero2024
@santiagocascolucero2024 4 жыл бұрын
Hola! tengo una duda con respecto al metodo paintComponent(Graphics g) Nosotros lo estamos sobreescribiendo y le pedimos que ademas de hacer lo que ya fue implementado para ese metodo y que dibuje con el objeto que le pasamos como argumento (g.drawRect() por ejemplo) lo que no me queda claro es, en que momento nosotros llamamos al metodo paintComponent? porque si bien agregamos la lamina (JPanel) en el constructor de nuestro Frame, en ningun lugar veo que tenga que llamar al metodo, pero aun asi lo dibuja una vez que lo ejecutamos. Espero se entienda la duda, como siempre los videos son genial, gracias, saludos.
@pildorasinformaticas
@pildorasinformaticas 4 жыл бұрын
El método paintComponent tiene la característica de que se invoca automáticamente por Java cuando: iniciamos el programa, redimensionamos la ventana, minimizamos la ventana o maximizamos la ventana. Por eso nunca verás llamadas explícitas en el código a este método. Bien visto. Un saludo!
@TheMaverickjc29
@TheMaverickjc29 3 жыл бұрын
He intentado de todo y no logro ni escribir ni, hacer la raya. Estoy usando netbeans 8.0.2, actualizacion mas reciente de Java y nada, copio codigo exacto y nada. Uso el metodo paintComponets y super.paintComponents y no hay forma. Debugeo y tampoco encuentro forma. Querido profesor se que el curso tiene casi 8 años, pero todo va igual. AYUDAAAA. package graficos; import java.awt.*; import javax.swing.*; public class PruebaDibujo { public static void main(String[] args) { MarcoConDibujos mimarco = new MarcoConDibujos(); } } class MarcoConDibujos extends JFrame{ public MarcoConDibujos(){ setTitle("PRUEBA DIBUJO"); setSize(400, 400); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); LaminaConFiguras lamina = new LaminaConFiguras(); add(lamina); setVisible(true); } } class LaminaConFiguras extends JPanel{ public void paintComponets(Graphics g){ super.paintComponents(g); g.drawRect(50, 50, 200, 200); g.drawArc(50, 100, 100, 200, 120, 150); } }
@fernandovicentechambi4229
@fernandovicentechambi4229 4 жыл бұрын
olaa, como puedo detectar la pulsacion del click derecho en el jframe o panel? porfaaa
@nicomar123456
@nicomar123456 7 жыл бұрын
hola profesor, una consulta , vamos a ver en su momento como hacer un exe de nuestros programas java? gracias!
@kililiman
@kililiman 7 жыл бұрын
Nicolas x Java no utiliza archivos exe, se compilan en .jar y para poder ejecutarlos necesitas tener instalada la máquina virtual de Java...
@nicomar123456
@nicomar123456 7 жыл бұрын
Christian Nataren Laguna pero entonces eso quiere decir que ningún programa que sea .exe se hizo con java?
@kililiman
@kililiman 7 жыл бұрын
Es posible hacer un ejecutable exe de un archivo .jar pero depende de aplicaciones de terceros, algunas son de pagos, otras son free y dependiendo del proyecto es posible que algunos generen incompatibilidades...
@nicomar123456
@nicomar123456 7 жыл бұрын
Christian Nataren Laguna eso me quedo claro, gracias por responder
@dardodariocallado5483
@dardodariocallado5483 3 жыл бұрын
no has dado nada de java security
@OsomWay
@OsomWay 3 жыл бұрын
Tengo una pregunta, esto tiene alguna utilidad? Yo veo mucho mejor usar photoshop, también hablo desde el desconocimiento...
@FranciscojavierHDD
@FranciscojavierHDD 5 жыл бұрын
El objeto de tipo Graphics ¿Cuando lo creaste?... se supone que debes pasarlo a ese método, pero nunca lo haces... lo escribi igual que tú, y me funciona, pero no entiendo de donde el método saca el objeto de tipo Graphics.
@estivenmartinez576
@estivenmartinez576 4 жыл бұрын
Es un parametro establecido un objeto que se instancia de la clase Graphics y se utiliza como argumento
@Jk.len.rin7
@Jk.len.rin7 Жыл бұрын
Ayudaaaa UnU
@NovaX-tb3pt
@NovaX-tb3pt 6 жыл бұрын
a mi no me aparece esa lamina. package Parte1; import java.awt.*; import javax.swing.*; public class Dibujo { public static void main(String[] args) { // TODO Auto-generated method stub MarcoDibujo Marco=new MarcoDibujo(); Marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Marco.setVisible(true); } } class MarcoDibujo extends JFrame{ public MarcoDibujo(){ setTitle("Dibujo"); setSize(500,500); LaminaDibujos dibujo=new LaminaDibujos(); add(dibujo); } } class LaminaDibujos extends JPanel{ public void paintComponet(Graphics g){ super.paintComponent(g); g.drawRect(50, 50, 200, 200); } }
@mrlx-1520
@mrlx-1520 3 жыл бұрын
package Graficos; import javax.swing.*; import java.awt.*; public class escribiendoEnMarco { public static void main(String[]args){ MarcoConTexto miMarco=new MarcoConTexto(); miMarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); int contador=1; while(contador
@juancarlosrios1447
@juancarlosrios1447 8 жыл бұрын
En mi caso he copiado tu codigo tal cual en mi programa, y al ejecutarlo, no puedo ver ningún grafico haga lo que haga. Además. en netbeans no aparece ningún error y no se que hacer. Dejo mi codigo aqui a ver si alguien me puede ayudar:/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package primer_.proyecto; import java.awt.*; import javax.swing.*; /** * * @author juancarlos */ public class pruebadibujo { public static void main (String []args){ interfaz4 interfaz=new interfaz4(); } } class interfaz4 extends JFrame{ public interfaz4(){ setVisible(true); setTitle("prueba de dibujo"); setSize(400,400); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); laminaconfiguras a=new laminaconfiguras(); add(a); } } class laminaconfiguras extends JPanel{ public void PaintComponent(Graphics g){ super.paintComponent(g); //g.drawRect(50, 50,200 , 200); g.drawLine(100, 100, 300, 200); } } Gracias de antemano, un saludo.
@juancarlosrios1447
@juancarlosrios1447 8 жыл бұрын
+Apo Apolo Al final yo mismo encontre el error xD. Resulta que había creado el metodo PaintComponent en vez de sobrescribit el paintComponent por poner la p en mayuscula. Maldito case sensitive XDD
@magdielefrainpalaciosriver2499
@magdielefrainpalaciosriver2499 7 жыл бұрын
jaja gracias amigo!!
@JoseManuel-lo2ed
@JoseManuel-lo2ed Жыл бұрын
Menuda comedia para dibujar una línea.
Curso Java  Aplicaciones gráficas. Swing VI  Dibujando en el Frame II. Vídeo 60
23:32
НРАВИТСЯ ЭТОТ ФОРМАТ??
00:37
МЯТНАЯ ФАНТА
Рет қаралды 8 МЛН
Pleased the disabled person! #shorts
00:43
Dimon Markov
Рет қаралды 32 МЛН
Turns out REST APIs weren't the answer (and that's OK!)
10:38
Dylan Beattie
Рет қаралды 129 М.
Curso Java  Eventos VII. Eventos de teclado I. Vídeo 71
27:08
pildorasinformaticas
Рет қаралды 90 М.
Aprende Java en 15 Minutos ☕
21:13
Victor Robles WEB
Рет қаралды 29 М.
Curso Java. Eventos III. Vídeo 67
13:38
pildorasinformaticas
Рет қаралды 80 М.
How principled coders outperform the competition
11:11
Coderized
Рет қаралды 1,6 МЛН