elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [Solucionado] no perder el Foco??
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Solucionado] no perder el Foco??  (Leído 10,333 veces)
Nakatsukasa Itero

Desconectado Desconectado

Mensajes: 22


Shark


Ver Perfil
[Solucionado] no perder el Foco??
« en: 10 Mayo 2012, 20:19 pm »

 :silbar:
pues como dice el título, ando y ando busque ejemplos y code sobre el como tener dos ventanas abiertas (independientes) y que la segunda que se abre, no permita que la minimize o que de click en otra ventana o que pierda el foco, pero no+ no.... y estoy casi seguro de que es como la forma de (o parecida) evitar que se cierre la ventana, es consumir el evento del lostfocus, pero no se como agarrarlo o hacer eso.... alguien me puede guiar, se que no deboe pedir codigo, pero al menos una pagina donde me oriente, gracias y disculpas.

uso NetBeans (7.1.2)
JDK 7.4
JavaFX 2.1  ;D


« Última modificación: 12 Mayo 2012, 01:04 am por Nakatsukasa Itero » En línea

Kanashimi no Itero
RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: no perder el Foco??
« Respuesta #1 en: 11 Mayo 2012, 03:32 am »

Imagino que hablas de Swing. No es posible conseguir ese comportamiento que mencionas, se puede conseguir un comportamiento similar, que es bastante molesto, pero no funcionará en el foco de las ventanas, veras como tu ventana pierde el foco en favor de otra ventana y tu ventana comenzará a pedir el foco, lo que terminará en un comportamiento intermitente bastante molesto, Como dices que las ventanas son independientes, imagino que no quieres una ventana "bloqueante". Este comportamiento lo he conseguido desde KDE en Gentoo Linux, no se como se comportará en Windoes o en otro DE con un gestor diferente.

Código
  1.  
  2. package dontlosefocus;
  3.  
  4. import java.awt.event.FocusEvent;
  5. import java.awt.event.FocusListener;
  6. import javax.swing.JFrame;
  7.  
  8. /**
  9.  *
  10.  * @author ryogi
  11.  */
  12. public class DontLoseFocus implements FocusListener {
  13.  
  14.    private JFrame mainFrame = new JFrame("No lose focus!!");
  15.  
  16.    public DontLoseFocus() {
  17.        mainFrame.setSize(200, 200);
  18.        mainFrame.setResizable(false);
  19.        mainFrame.setAlwaysOnTop(true);
  20.        mainFrame.addFocusListener(this);
  21.        mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  22.    }
  23.  
  24.    public void show() {
  25.        mainFrame.setVisible(true);
  26.    }
  27.  
  28.    public static void main(String[] args) {
  29.        DontLoseFocus dlf = new DontLoseFocus();
  30.        dlf.show();
  31.    }
  32.  
  33.    @Override
  34.    public void focusGained(FocusEvent e) {
  35.    }
  36.  
  37.    @Override
  38.    public void focusLost(FocusEvent e) {
  39.        mainFrame.requestFocus();
  40.    }
  41. }
  42.  

Si tienes alguna duda con el código me avisas.

Saludos


En línea

Nakatsukasa Itero

Desconectado Desconectado

Mensajes: 22


Shark


Ver Perfil
Re: no perder el Foco??
« Respuesta #2 en: 11 Mayo 2012, 21:51 pm »

ese si me funkó con swing, pero no en fx; y si el resultado que quiero es una ventana bloqueante, imagina que es como un joption o jdialog, ya vez que cuando aparecen, la parte de atras (su ancestor o parent) no puede ser accedida debido a que el dialog u option sigue arriba esperando que le presiones un boton o la cierres, eso es lo que busco..... gracias por tu respuesta de todas formas...   :-\
En línea

Kanashimi no Itero
RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: no perder el Foco??
« Respuesta #3 en: 12 Mayo 2012, 00:00 am »

Hola. Bueno si se trata de JavaFX lo que tienes que hacer entonces es usar Modalities en el Stage. Puedes revisar los tipos de Modality que puedes aplicar en un Stage en el siguiente enlace: http://docs.oracle.com/javafx/2/api/javafx/stage/Stage.html

En todo caso te dejo un ejemplo ilustrando lo que he expuesto:

Código
  1. package blockingwindow;
  2.  
  3. import javafx.application.Application;
  4. import javafx.event.ActionEvent;
  5. import javafx.event.EventHandler;
  6. import javafx.scene.Group;
  7. import javafx.scene.Scene;
  8. import javafx.scene.control.Button;
  9. import javafx.scene.text.Text;
  10. import javafx.stage.Modality;
  11. import javafx.stage.Stage;
  12.  
  13.  
  14. /**
  15.  *
  16.  * @author Takumi
  17.  */
  18. public class BlockingWindow extends Application {
  19.  
  20.    /**
  21.      * @param args the command line arguments
  22.      */
  23.    public static void main(String[] args) {
  24.        launch(args);
  25.    }
  26.  
  27.    @Override
  28.    public void start(Stage primaryStage) {
  29.        Button newBlockWin = new Button("Abrir ventana");
  30.        newBlockWin.setOnAction(new EventHandler<ActionEvent>() {
  31.            @Override
  32.            public void handle(ActionEvent event) {
  33.                final Stage blockWin = new Stage();
  34.                blockWin.initModality(Modality.APPLICATION_MODAL);
  35.  
  36.                Scene blockScene = new Scene(new Group(
  37.                        new Text(10, 10, "Blocking Window")), 200, 200);
  38.                blockWin.setScene(blockScene);
  39.                blockWin.show();
  40.            }
  41.        });
  42.        Group root = new Group();
  43.        Scene scene = new Scene(root, 300, 300);
  44.        root.getChildren().add(newBlockWin);
  45.        primaryStage.setTitle("Blocking Window");
  46.        primaryStage.setScene(scene);
  47.        primaryStage.sizeToScene();
  48.        primaryStage.show();
  49.    }
  50. }


Como puedes ver el Modality se ha aplicado al Stage creado desde el handle del botón.

Espero sea de ayuda.

Saludos
« Última modificación: 12 Mayo 2012, 00:41 am por RyogiShiki » En línea

Nakatsukasa Itero

Desconectado Desconectado

Mensajes: 22


Shark


Ver Perfil
Re: no perder el Foco??
« Respuesta #4 en: 12 Mayo 2012, 01:03 am »

 :D
arigatou
but
no me funcionaron las "Modas" (Modals) aunque está muy bienb el code..... pero gracias de todos modos... lo pondré como solucionado, esa parte ya la agarró el jefe despues de haber visto las pruebas y ver... que no funcionaron, y pues me libré  ;D anyway Gracias por tu pronta respuesta y pide a quien quieras que javafx realmente siga asi de facil y que se le implemente mas facilidad aun... have a nice day ;-)
En línea

Kanashimi no Itero
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
mantener el foco...
Programación Visual Basic
tony12 1 1,455 Último mensaje 23 Febrero 2006, 16:04 pm
por tony12
Foco de una ventana « 1 2 »
Programación Visual Basic
Yekka 10 3,086 Último mensaje 29 Octubre 2007, 02:34 am
por Yekka
[SOLUCIONADO] Particionar disco C sin perder el SO
Windows
79137913 6 4,254 Último mensaje 16 Febrero 2011, 19:44 pm
por 79137913
[Solucionado] Textbox y pérdida de foco.
Programación Visual Basic
Akkiles145 7 3,640 Último mensaje 1 Mayo 2011, 14:16 pm
por Akkiles145
no perder foco en JFRAME
Programación General
XpandyX 0 2,367 Último mensaje 22 Octubre 2011, 19:01 pm
por XpandyX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines