{"id":1856,"date":"2014-06-12T22:35:00","date_gmt":"2014-06-13T03:35:00","guid":{"rendered":"http:\/\/linuxitos.com\/main\/abrir-desde-un-jframe-un-jdialog-modal-que-se-cierre-despues-de-un-tiempo\/"},"modified":"2014-06-12T22:35:00","modified_gmt":"2014-06-13T03:35:00","slug":"abrir-desde-un-jframe-un-jdialog-modal-que-se-cierre-despues-de-un-tiempo","status":"publish","type":"post","link":"https:\/\/linuxitos.com\/main\/abrir-desde-un-jframe-un-jdialog-modal-que-se-cierre-despues-de-un-tiempo\/","title":{"rendered":"Abrir desde un jframe un jdialog modal que se cierre despu\u00e9s de un tiempo"},"content":{"rendered":"<p><span style=\"font-size: large;\">Abrir desde un jframe un jdialog modal que se cierre despu\u00e9s de un tiempo<\/span><br \/><span style=\"font-size: large;\"><br \/><\/span>En uno de mis proyectos que estaba desarrollando en java necesitaba enviar un mensaje a la pantalla, pero que despu\u00e9s de un cierto tiempo el mensaje se cerrara s\u00f3lo, al principio no sab\u00eda c\u00f3mo hacerlo, de tal modo que busqu\u00e9 un poco de informaci\u00f3n en la web y encontr\u00e9 una manera de hacerlo usando la clase timer.<\/p>\n<p>El problema se solucion\u00f3 de la siguiente manera., fue elaborado en netbeans 8.0, en fedora gnome<\/p>\n<p>\/*el jframe principal contiene el siguiente c\u00f3digo*\/<br \/>public class menuInicial extends javax.swing.JFrame {<\/p>\n<p>&nbsp; &nbsp; \/**<br \/>&nbsp; &nbsp; &nbsp;* Creates new form menuInicial<br \/>&nbsp; &nbsp; &nbsp;*\/<br \/>&nbsp; &nbsp; public menuInicial() {<br \/>&nbsp; &nbsp; &nbsp; &nbsp; initComponents();<br \/>&nbsp; &nbsp; }<br \/>&nbsp; &nbsp; private void jbAbrirDialogeActionPerformed(java.awt.event.ActionEvent evt) {<br \/>&nbsp; &nbsp; &nbsp; &nbsp; new mensajeFelicitacion(this, rootPaneCheckingEnabled).setVisible(true);<br \/>&nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <\/p>\n<p>&nbsp; &nbsp; private void jbSalirActionPerformed(java.awt.event.ActionEvent evt) { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br \/>&nbsp; &nbsp; &nbsp; &nbsp; System.exit(0);<br \/>&nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <\/p>\n<p>&nbsp; &nbsp; \/**<br \/>&nbsp; &nbsp; &nbsp;* @param args the command line arguments<br \/>&nbsp; &nbsp; &nbsp;*\/<br \/>&nbsp; &nbsp; public static void main(String args[]) {<br \/>&nbsp; &nbsp; &nbsp; &nbsp; \/* Create and display the form *\/<br \/>&nbsp; &nbsp; &nbsp; &nbsp; java.awt.EventQueue.invokeLater(new Runnable() {<br \/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public void run() {<br \/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; new menuInicial().setVisible(true);<br \/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br \/>&nbsp; &nbsp; &nbsp; &nbsp; });<br \/>&nbsp; &nbsp; }<\/p>\n<p>&nbsp; &nbsp; \/\/ Variables declaration &#8211; do not modify &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br \/>&nbsp; &nbsp; private javax.swing.JLabel jLabel1;<br \/>&nbsp; &nbsp; private javax.swing.JPanel jPanel1;<br \/>&nbsp; &nbsp; private javax.swing.JButton jbAbrirDialoge;<br \/>&nbsp; &nbsp; private javax.swing.JButton jbSalir;<br \/>&nbsp; &nbsp; \/\/ End of variables declaration &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br \/>}<\/p>\n<div style=\"clear: both; text-align: center;\"><a href=\"http:\/\/4.bp.blogspot.com\/-UMt-gr3LUEI\/U5pv-ygriII\/AAAAAAAAAFU\/8MEKW2dwNK0\/s1600\/Captura+de+pantalla+de+2014-06-12+22:28:21.png\" style=\"margin-left: 1em; margin-right: 1em;\"><img loading=\"lazy\" decoding=\"async\" border=\"0\" src=\"http:\/\/4.bp.blogspot.com\/-UMt-gr3LUEI\/U5pv-ygriII\/AAAAAAAAAFU\/8MEKW2dwNK0\/s1600\/Captura+de+pantalla+de+2014-06-12+22:28:21.png\" height=\"258\" width=\"640\" \/><\/a><\/div>\n<p>El jframe principal contiene lo que se muestra en la imagen de arriba.<br \/>Las l\u00edneas que se agregan al c\u00f3digo, son las que abren el di\u00e1logo y la del cerrar el programa<br \/>en el bot\u00f3n Abrir di\u00e1logo se agrega<br \/>&nbsp;new mensajeFelicitacion(this, rootPaneCheckingEnabled).setVisible(true);<\/p>\n<p>y en el bot\u00f3n salir se agrega:<br \/>System.exit(0);<\/p>\n<p>En la interfaz dialog contiene<br \/>import java.awt.event.ActionEvent;<br \/>import java.awt.event.ActionListener;<br \/>import javax.swing.Timer;<\/p>\n<p>\/**<br \/>&nbsp;*<br \/>&nbsp;* @author neo<br \/>&nbsp;*\/<br \/>public class mensajeFelicitacion extends javax.swing.JDialog implements ActionListener{<\/p>\n<p>&nbsp; &nbsp; \/**<br \/>&nbsp; &nbsp; &nbsp;* Creates new form mensajeFelicitacion<br \/>&nbsp; &nbsp; &nbsp;*\/<br \/>&nbsp; &nbsp; public mensajeFelicitacion(java.awt.Frame parent, boolean modal) {<br \/>&nbsp; &nbsp; &nbsp; &nbsp; super(parent, modal);<br \/>&nbsp; &nbsp; &nbsp; &nbsp; Timer t = new Timer(10000, this); &nbsp; &nbsp;\/\/ Timer in 10 seconds<br \/>&nbsp; &nbsp; &nbsp; &nbsp; t.start();<br \/>&nbsp; &nbsp; &nbsp; &nbsp; initComponents();<br \/>&nbsp; &nbsp; }<br \/>&nbsp; &nbsp; @Override<br \/>&nbsp; &nbsp; public void actionPerformed(ActionEvent e) {<br \/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;this.dispose();<br \/>&nbsp; &nbsp; &nbsp;}<\/p>\n<p>&nbsp; &nbsp; \/\/ Variables declaration &#8211; do not modify &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br \/>&nbsp; &nbsp; private javax.swing.JLabel jLabel1;<br \/>&nbsp; &nbsp; private javax.swing.JPanel jPanel1;<br \/>&nbsp; &nbsp; \/\/ End of variables declaration &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br \/>}<\/p>\n<p>Lo importante aqu\u00ed es que el jdialog implemente ActionListener, para que valide cuando el tiempo del timer ya haya transcurrido, es necesario sobre escribir el m\u00e9todo.<\/p>\n<p>En el constructor se inicializa el timer y se inicia.<br \/>&nbsp;public mensajeFelicitacion(java.awt.Frame parent, boolean modal) {<br \/>&nbsp; &nbsp; &nbsp; &nbsp; super(parent, modal);<br \/>&nbsp; &nbsp; &nbsp; &nbsp; Timer t = new Timer(10000, this); &nbsp; &nbsp;\/\/ Timer in 10 seconds<br \/>&nbsp; &nbsp; &nbsp; &nbsp; t.start();<br \/>&nbsp; &nbsp; &nbsp; &nbsp; initComponents();<br \/>&nbsp; &nbsp; }<br \/>&nbsp; &nbsp; @Override<br \/>en el escuchador se valida que el tiempo llegue a lo acordado, para que se destruya cuando sea necesario.<br \/>&nbsp; &nbsp; public void actionPerformed(ActionEvent e) {<br \/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;this.dispose();<br \/>&nbsp; &nbsp; &nbsp;}<\/p>\n<p>Y eso es todo.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Abrir desde un jframe un jdialog modal que se cierre despu\u00e9s de un tiempoEn uno de mis proyectos que estaba desarrollando en java necesitaba enviar un mensaje a la pantalla, pero que despu\u00e9s de un cierto tiempo el mensaje se cerrara s\u00f3lo, al principio no sab\u00eda c\u00f3mo hacerlo, de tal modo que busqu\u00e9 un poco [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,87,446,1523,1521,4,1524],"tags":[],"class_list":["post-1856","post","type-post","status-publish","format-standard","hentry","category-fedora","category-gnome","category-java","category-jdialog","category-jframe","category-linux","category-timer"],"_links":{"self":[{"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/posts\/1856","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/comments?post=1856"}],"version-history":[{"count":0,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/posts\/1856\/revisions"}],"wp:attachment":[{"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/media?parent=1856"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/categories?post=1856"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/tags?post=1856"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}