¿Es posible agregar una JLabel encima de otra JLabel? Gracias.JLabel encima de otra JLabel
Respuesta
La respuesta corta es sí, como JLabel
es una Container
, por lo que puede aceptar una Component
(un JLabel
es una subclase de Component
) añadir a la JLabel
utilizando el add
método:
JLabel outsideLabel = new JLabel("Hello");
JLabel insideLabel = new JLabel("World");
outsideLabel.add(insideLabel);
En el código anterior, se agrega insideLabel
al outsideLabel
.
Sin embargo, visualmente aparece una etiqueta con el texto "Hola", por lo que realmente no se puede ver la etiqueta que está dentro de la etiqueta.
Por lo tanto, la pregunta es qué se quiere lograr al agregar una etiqueta encima de otra etiqueta.
Editar:
De los comentarios:
bien, lo que quería hacer era primero, leer una cierta fracción de un archivo, a continuación, mostrar que la fracción de un jlabel. lo que pensé fue en dividir la fracción en 3 partes, luego usar una etiqueta para cada una de las tres. luego segundo, quiero poder arrastrar la fracción, así que pensé que podría usar otra jlabel, y colocar 3'mini jlabels 'sobre la etiqueta grande. no sé si esto funcionará aunque ..: |
Parece que hay que ver cómo usar los administradores de diseño en Java.
Un buen lugar para comenzar sería Using Layout Managers y A Visual Guide to Layout Managers, ambos de The Java Tutorials.
Parece que GridLayout
podría ser una opción para realizar la tarea.
JPanel p = new JPanel(new GridLayout(0, 1));
p.add(new JLabel("One"));
p.add(new JLabel("Two"));
p.add(new JLabel("Three"));
En el ejemplo anterior, el JPanel
está hecho de utilizar un GridLayout
como el controlador de distribución, y se le dice que hacer una fila de JLabel
s.
oh. ¡Genial, gracias! No estoy realmente familiarizado con estos, así que pregunté aquí. :) – annaoj
bueno, lo que quería hacer era primero, leer una cierta fracción de un archivo, luego mostrar esa fracción en un jlabel. lo que pensé fue dividir la fracción en 3 partes, luego usar una etiqueta para cada una de las tres. luego, en segundo lugar, quiero poder arrastrar la fracción, así que pensé que podría usar otra jlabel, y colocar las 3'mini jlabels 'sobre la gran jlabel. no sé si esto funcionará ...: | – annaoj
suena como que esto va a funcionar ... gracias, ¡amigo! :) – annaoj
es una cuestión de diseño. puede hacerlo usando el diseño nulo (con ubicaciones codificadas) o con un diseño personalizado.
He estado tratando de hacer esto, pero no funciona para mí. : c tal vez estoy haciendo algo mal. Intentaré de nuevo. gracias Omry! – annaoj
puede usar la función list() para obtener un buen volcado de la jerarquía de contenedores actual, lo que le ayudará a depurar su problema. –
¡genial! ¡Gracias! si encuentro problemas nuevamente, ¿puedo publicarlo aquí nuevamente? – annaoj
La respuesta a su pregunta original es sí por los motivos, dado que cualquier Componente se puede agregar a un Contenedor.
La razón por la que no ve la segunda etiqueta es porque, de forma predeterminada, un JLabel utiliza un administrador de diseño nulo y el tamaño de la segunda etiqueta es (0, 0) por lo que no hay nada que pintar. Entonces, todo lo que tiene que hacer es establecer los límites de la segunda etiqueta y listo.
No puede usar un administrador de disposición si desea arrastrar componentes porque, tan pronto como cambie el tamaño del marco, se invocará el administrador de disposición y los componentes se reposicionarán en función del administrador de disposición del componente.
oh. pero ¿es posible tener una etiqueta encima de otra y ser capaz de arrastrar ambas etiquetas como una sola? : | – annaoj
Si el detector de mouse se agrega a la etiqueta principal, todos los elementos secundarios también se arrastrarán cuando se mueva. – camickr
oh..pero un amigo dijo que no es posible ... dijo que debería usar un panel. wah. ahora estoy perdido. : | – annaoj
puede usar un JLayeredPane
y establecer su borde en Sin borde.
Disculpa, ¡es una manera fácil si usas un diseñador! Como el de Netbeans. –
puede agregar ponerlos por encima de los demás mediante el uso de la brecha horizontal o vertical (hgap, Vgap) los atributos del diseño
JPanel p = new JPanel(new GridLayout(2, 1,-40,0)); //the 40 is the hgap , make it the same with the label height .
- 1. JLabel images array
- 2. ¿Existe algún JLabel MultiLine?
- 3. Girar un Swing JLabel
- 4. Mostrar BMP en JLabel
- 5. Java Animate JLabel
- 6. Newline en JLabel
- 7. JLabel pinta puntos
- 8. Cambiar la fuente de JLabel
- 9. Alineación de texto en JLabel
- 10. Java agregando ImageIcon a JLabel
- 11. JLabel - obtener el panel principal?
- 12. Cómo cambiar un JLabel dinámicamente
- 13. ¿Dos íconos en un JLabel?
- 14. ¿Cómo agregar JLabel a JEditorPane?
- 15. ¿Cómo dibujar en un JLabel?
- 16. ¿Cómo resaltar parte de un JLabel?
- 17. Cambiar la fuente predeterminada de JLabel
- 18. arrastrando un jlabel alrededor de la pantalla
- 19. El texto html de JLabel ignora setFont
- 20. ¿Cómo cambiar el icono de un JLabel?
- 21. JLabel al cambiar el evento de texto
- 22. Cómo alinear pares JLabel-JTextField verticalmente
- 23. Centrar un JLabel en un JPanel
- 24. ActionListener en JLabel o JTable cell
- 25. Alinear texto en JLabel a la derecha
- 26. setAlignmentY no centrado JLabel en BorderLayout
- 27. Cómo agregar un hipervínculo en JLabel
- 28. JTextField con estilo JLabel utilizando GTKLookAndFeel
- 29. Java: cómo agregar imágenes a Jlabel?
- 30. La alineación vertical de JLabel no funciona como se esperaba
lo siento ... ¿por qué habría que hacer sentidos ?? – Juri
es por eso que estoy preguntando ... – annaoj