bloque3:usabilidad
Diferencias
Muestra las diferencias entre dos versiones de la página.
bloque3:usabilidad [2020/11/24 09:55] – [Iconos intuitivos] 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> | ||
+ | ==== Opciones de Internacionalización en IntelliJ ==== | ||
+ | El IDE IntelliJ, permite algunas facilidades a la hora de internacionalizar una aplicación: | ||
+ | * Permite crear ResourceBundle de varios idiomas | ||
+ | * Ofrece añadir claves directamente, | ||
+ | * Facilita la traducción de los ficheros '' | ||
+ | Para poder añadir claves a nuestro // | ||
+ | Dentro del árbol buscar la sección **Java -> Internationalization Issues -> Marcar el checkbox //Hard coded strings//** | ||
+ | A partir de ahí puedo añadir literales de strings desde mi código fuente como claves a los ficheros // | ||
+ | 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 491: | 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 507: | 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 575: | 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.1606211712.txt.gz · Última modificación: 2024/09/16 20:55 (editor externo)