Nunca he tenido que escribir GUI en java. Esta vez también puedo saltar y utilizar args
como UI (interfaz de usuario).
Pero me pregunto si hay una manera sencilla de crear una pequeña interfaz gráfica de usuario para permitir que el usuario seleccione una de las opciones.
En otras palabras, para implementar el askUser()
función en la que el usuario puede seleccionar de un menú desplegable y pulse el botón «aceptar».
Puedo pasar algún tiempo aprendiendo de este tema, pero no está seguro de que sé que tipo de GUI necesito para esta tarea. JFrame? JPanel? Jmenu? Gracias.
Aquí es un ejemplo de la función deseada.
package trygui;
public class Main {
public static void main(String[] args) {
String[] choices = new String[]{"cats", "dogs"};
int choice = askUser(choices);
System.out.println("selected: " + choices[choice]);
}
static int askUser(String[] choices) {
//create pop-up dialog
return 0;
}
}
Actualización: yo uso Netbeans, si esto puede hacer la diferencia.
La opción más sencilla sería utilizar el
JOptionPane
APIUsted puede encontrar más información al tener una lectura a través de Cómo Hacer cuadros de diálogo
ACTUALIZA con comentarios de
String
en el main() si puedo usar su solución?main
no se inicia dentro de la EDT). Esto trae una serie de problemas. La comprobación de actualización para su posible solución. La verdadera solución sería el uso deSwingUtilties#invokeLater
en elmain
método para conseguir que en el EDT y continuar lanzando el resto de la aplicación noSi quieres crear un Swing GUI, el uso de un IDE como NetBeans le da la sencillez de uso de un WYSIWYG gui designer, así que usted puede simplemente arrastrar y soltar los elementos de la GUI en su lugar, y luego agregar su código de lógica de alrededor del código de la GUI que NetBeans salidas.
Ciertamente no es algo que se basan en «construir la interfaz gráfica de usuario para usted», pero hacen un gran trabajo de configuración de la base para trabajar con. También se puede aprender mucho sobre el Swing sólo por la lectura a través de trabajo y con el código que NetBeans genera para la interfaz gráfica de usuario.
Esto me parece un gran acelerador en introducción al diseño de aplicaciones Swing.
Después de preguntar he encontrado esta solución. Para hacerlo más simple, el
askUser()
devuelveString
.JTable
con una fila clasificador. El uso de una tabla personalizada modelo, rellenar desde el exterior de la EDT, permitiendo que el modelo a fuego eventos de actualización. También puede intentar y conseguir dos o más subprocesos para la actualización de un área de texto (utilizando intervalos aleatorios) como un par de ejemplos sé