bloque3:usabilidad
Diferencias
Muestra las diferencias entre dos versiones de la página.
| bloque3:usabilidad [2020/12/18 00:35] – [Internacionalizar GUI Form en IntelliJ] fernando | bloque3:usabilidad [2024/09/16 20:55] (actual) – editor externo 127.0.0.1 | ||
|---|---|---|---|
| Línea 436: | Línea 436: | ||
| ==== Clase ResourceBundle ==== | ==== Clase ResourceBundle ==== | ||
| Es la clase sobre la que basamos la internacionalización. Nos permite cargar propiedades de diferentes ficheros dependiendo de las propiedades del objeto '' | Es la clase sobre la que basamos la internacionalización. Nos permite cargar propiedades de diferentes ficheros dependiendo de las propiedades del objeto '' | ||
| + | |||
| + | Mediante el método estático '' | ||
| + | |||
| + | * **getBundle**(" | ||
| + | * **getBundle**(" | ||
| <code java> | <code java> | ||
| Línea 443: | Línea 448: | ||
| String texto = bundle.getString(" | String texto = bundle.getString(" | ||
| - | |||
| //Nos carga el fichero EtiquetasBundle_en.properties (inglés) | //Nos carga el fichero EtiquetasBundle_en.properties (inglés) | ||
| Línea 450: | Línea 454: | ||
| String texto = bundle.getString(" | String texto = bundle.getString(" | ||
| + | |||
| + | //Si no pasamos un parametro Locale, usa el actual (Locale.getDefault()) | ||
| + | Locale.setDefault(Locale.UK); | ||
| + | ResourceBundle bundle = ResourceBundle.getBundle(" | ||
| </ | </ | ||
| Línea 481: | Línea 489: | ||
| {{ vimeo> | {{ vimeo> | ||
| - | ==== Internacionalizar GUI Form en IntelliJ ==== | + | ==== Opciones de Internacionalización |
| El IDE IntelliJ, permite algunas facilidades a la hora de internacionalizar una aplicación: | El IDE IntelliJ, permite algunas facilidades a la hora de internacionalizar una aplicación: | ||
| * Permite crear ResourceBundle de varios idiomas | * Permite crear ResourceBundle de varios idiomas | ||
| Línea 494: | Línea 502: | ||
| En el siguiente video se explican las diferentes funcionalidades de IntelliJ respecto a la internacionalización: | En el siguiente video se explican las diferentes funcionalidades de IntelliJ respecto a la internacionalización: | ||
| + | {{ vimeo> | ||
| ===== Pantalla de carga (SplashScreen) ===== | ===== Pantalla de carga (SplashScreen) ===== | ||
| Línea 502: | Línea 510: | ||
| {{ : | {{ : | ||
| - | |||
| - | Para emplear una // | ||
| El siguiente código se puede descargar y muestra un ejemplo de una ventana de carga con una imagen y una barra de carga: | El siguiente código se puede descargar y muestra un ejemplo de una ventana de carga con una imagen y una barra de carga: | ||
| Línea 518: | Línea 524: | ||
| import javax.swing.SwingConstants; | import javax.swing.SwingConstants; | ||
| - | public class SplashScreen2 extends JDialog | + | public class SplashScreen2 extends JDialog{ |
| - | private static final long serialVersionUID = 1L; | + | private JProgressBar barraProgreso; |
| - | private JProgressBar barraProgreso; | + | |
| - | public SplashScreen2() { | + | public SplashScreen2() { |
| - | setBounds(100, | + | setBounds(100, |
| - | + | JPanel contentPane = new JPanel(); | |
| - | JPanel contentPane = new JPanel(); | + | contentPane.setLayout(new BorderLayout()); |
| - | contentPane.setLayout(new BorderLayout()); | + | setContentPane(contentPane); |
| - | setContentPane(contentPane); | + | |
| - | + | //Creo una etiqueta con la imagen en el centro | |
| - | //Creo una etiqueta con la imagen en el centro | + | JLabel lblImagen = new JLabel(); |
| - | JLabel lblImagen = new JLabel(); | + | //Indico la imagen que quiero mostrar en la label |
| - | //Indico la imagen que quiero mostrar en la label | + | lblImagen.setIcon(new ImageIcon(SplashScreen.class.getResource("/ |
| - | lblImagen.setIcon(new ImageIcon(SplashScreen.class.getResource("/ | + | contentPane.add(lblImagen, |
| - | contentPane.add(lblImagen, | + | |
| - | + | //Creo un panel al sur con una barra de carga y una label para el autor | |
| - | //Creo un panel al sur con una barra de carga y una label para el autor | + | JPanel panelInferior = new JPanel(); |
| - | JPanel panelInferior = new JPanel(); | + | panelInferior.setLayout(new GridLayout(2, |
| - | panelInferior.setLayout(new GridLayout(2, | + | barraProgreso = new JProgressBar(); |
| - | barraProgreso = new JProgressBar(); | + | //Muestra el % de carga |
| - | //Muestra el % de carga | + | barraProgreso.setStringPainted(true); |
| - | barraProgreso.setStringPainted(true); | + | panelInferior.add(barraProgreso); |
| - | panelInferior.add(barraProgreso); | + | |
| - | + | JLabel lblFersoft = new JLabel(" | |
| - | JLabel lblFersoft = new JLabel(" | + | lblFersoft.setForeground(Color.BLUE); |
| - | lblFersoft.setForeground(Color.BLUE); | + | lblFersoft.setHorizontalAlignment(SwingConstants.CENTER); |
| - | lblFersoft.setHorizontalAlignment(SwingConstants.CENTER); | + | panelInferior.add(lblFersoft); |
| - | panelInferior.add(lblFersoft); | + | |
| - | + | //Anado el panel inferior al principal | |
| - | //Anado el panel inferior al principal | + | contentPane.add(panelInferior, |
| - | contentPane.add(panelInferior, | + | |
| - | + | setResizable(false); | |
| - | setResizable(false); | + | setUndecorated(true); |
| - | setUndecorated(true); | + | setLocationRelativeTo(null); |
| - | setLocationRelativeTo(null); | + | setVisible(true); |
| - | setVisible(true); | + | |
| - | } | + | try { |
| - | + | iniciarBarraCarga(); | |
| - | //Metodo implementado por Runnable | + | } catch (InterruptedException e) { |
| - | @Override | + | throw new RuntimeException(e); |
| - | public void run() { | + | } |
| - | try { | + | |
| - | //Cada 20ms avanzamos | + | |
| - | for(int i = 0; i < 100; i++) { | + | } |
| - | | + | |
| - | barraProgreso.setValue(i); | + | |
| - | } | + | |
| - | | + | |
| - | | + | actualizarBarraProgreso(i); |
| - | | + | } |
| - | //Al terminar la espera cierro el JDialog | + | |
| - | | + | |
| - | } | + | |
| + | SwingUtilities.invokeLater(new Runnable() { | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | }); | ||
| + | | ||
| } | } | ||
| </ | </ | ||
| Línea 586: | Línea 598: | ||
| Vista vista = new Vista(); | Vista vista = new Vista(); | ||
| - | //El controlador arranca | + | //El controlador arranca |
| | | ||
| - | //Creamos el hilo | + | SplashScreen splash |
| - | | + | |
| - | //Iniciamos el hilo de la splash screen | + | |
| - | | + | |
| - | + | ||
| - | // | + | |
| - | try { | + | |
| - | hilo.join(); | + | |
| - | } catch (InterruptedException e) { | + | |
| - | e.printStackTrace(); | + | |
| - | } | + | |
| - | + | ||
| // | // | ||
| - | // | + | // |
| | | ||
| } | } | ||
| </ | </ | ||
| + | Esta // | ||
| ===== Ayuda y manuales de usuario ===== | ===== Ayuda y manuales de usuario ===== | ||
| Cuando trabajamos con alguna aplicación de software hay una parte común en todas ellas y es la sección de ayuda. Esta sección nos ofrece la documentación de usuario del software, y la forma de mostrarla y acceder a ella puede ser más o menos interactiva. En nuestro caso debemos crear una sección que permita al menos visualizar los manuales de usuario de nuestro software. | Cuando trabajamos con alguna aplicación de software hay una parte común en todas ellas y es la sección de ayuda. Esta sección nos ofrece la documentación de usuario del software, y la forma de mostrarla y acceder a ella puede ser más o menos interactiva. En nuestro caso debemos crear una sección que permita al menos visualizar los manuales de usuario de nuestro software. | ||
bloque3/usabilidad.1608251755.txt.gz · Última modificación: 2024/09/16 20:55 (editor externo)