¿Qué diseño y contenedores serían adecuados para hacer una GUI como Tiled?

Iba a usar el programa llamado Embaldosado, pero decidió no hacerlo ya que estaba convirtiendo todo en bloques y limitaba un poco la libertad.

Mi pregunta es qué administrador de diseño usarías para que algo se vea como Tiled. Realmente me gusta la sensación y cuando hago esta herramienta quiero que actúe de manera similar cuando muevo los componentes.

Esto es lo que he hecho y estaba pensando:

  • Tenga un JFrame que contenga una barra de menú y un panel de contenido. (Funciona perfecto cajero automático)
  • El panel de contenido es un BorderLayout. (Funciona perfecto cajero automático)
  • Dentro del panel de contenido hay una barra de herramientas como la siguiente. (Funciona perfecto cajero automático)
  • Dentro de la barra de herramientas, tendré botones que se mostrarán como imágenes, también conocidos como íconos, y se puede hacer clic en ellos como en el círculo rojo.
  • El panel de contenido contendrá dos paneles J
  • El primer panel J será como el círculo negro y contendrá el mapa que pintaré allí.
  • El segundo panel J contendrá componentes como capas, historial, atlas e imágenes.
  • El primer Panel J será el Centro y el segundo Panel J será el Este

Aquí están mis problemas:

  • Cuando inicio la GUI, casi no obtengo nada del JPanel correcto y parece que no puedo hacer que se amplíe más a menos que tenga contenido real como un JList o algo así.

Les pido a todos que me guíen sobre qué cosas harían. Si bien he creado GUI antes, no tengo la experiencia suficiente para saber cómo lidiar realmente con esto cuando se trata de elegir un administrador de diseño y cómo usarlo exactamente en esta situación particular. Todo lo que necesito es información básica sobre cómo lo haría y por qué., no necesita ningún código. ¡GRACIAS!

Embaldosado

Mi programa como Tiled

preguntado el 29 de junio de 12 a las 20:06

2 Respuestas

Recomiendo el uso de migLayout. Es un administrador de diseño de terceros muy poderoso y muy bien soportado. Ha habido peticiones (hasta ahora sin éxito) para incluirlo con Java. MigLayout te permitirá hacer lo que quieras sin tener que hacer concesiones y usando mucho menos código. Podría continuar con esto, pero si solo navega a través de sus demostraciones y código de muestra, lo verá por sí mismo.

Respondido el 29 de junio de 12 a las 20:06

Creo que MigLayout está incluido ahora. Lo acabo de incluir para poder probarlo... vino con mi java. "importar red.miginfocom.swing.MigLayout;" - Zeveso

No puedo encontrar ninguna prueba o evidencia de esto en ninguna parte. Sin embargo, si lo tiene y nunca lo descargó, entonces supongo que debe ser cierto. - Dima

no lo he descargado Lo mencionan aquí"docs.oracle.com/javase/tutorial/uiswing/layout/using.html", pero no estoy seguro si siempre incluyen herramientas de terceros en su jdk. - Zeveso

¡Ay, eso es nuevo! Ni siquiera pensé en revisar esa página porque no la he visto en ningún registro de cambios. - Dima

Otro voto para MigLayout. Desafortunadamente @Zeveso eso sigue siendo solo una recomendación. Se han realizado algunos esfuerzos para incluir MigLayout "oficialmente" (p. ej. bugs.sun.com/view_bug.do?bug_id=6530906) pero no parece que esto haya sucedido todavía. - DPlusV

Haga que su JPanel derecho sea una subclase de JPanel y anule su método getPreferredSize() devolviendo un tamaño apropiado que la mayoría (pero no todos) los administradores de diseño respetarán.

Respondido el 29 de junio de 12 a las 21:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.