Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Dudas sobre JLabel y el JPanel

Estos haciendo el uno de los retos de Alura y tengo problemas al colocar texto largos en el JLabel no logo hace que el texto se coloque uno encima de otro, siempre queda algo así (Texto...) Respeto al panel, no logro que el que los botones y el logo queden encima de panel he utilizado él (this.setComponentZOrder(this.panel, 0); Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Codigo1: package interfaz; import java.awt.Color; import java.awt.Container; import java.awt.Image; import java.awt.Toolkit;

import javax.swing.*;

public class Ventana extends JFrame{ private static final long serialVersionUID = -3030099236595355215L; protected Color colorWithe = new Color(255, 255, 255); protected Color colorBlue = new Color(12, 138, 199); protected Color colorGray = new Color(109, 109, 109); protected Container fondo = this.getContentPane();

public Ventana() {
    this.setLayout(null);
    this.AgregarElem();
    this.fondo.setBackground(this.colorWithe);
    this.setIconImage(this.getIconImage());
}


//Icono del JFrame
@Override
public Image getIconImage(){
    Image retValue = Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource("img/aH-40px.png"));
    return retValue;
}

public void AgregarElem(){}

public void iniciar() {
    this.setBounds(10,20,1200,600);
    this.setResizable(false);
    this.setVisible(true);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public static void main(String[] args) {
    Ventana n = new Ventana();
    n.iniciar();
}

}

Codigo2:

package interfaz;

import java.time.LocalDate; import java.time.format.DateTimeFormatter;

import javax.swing.BorderFactory; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JSeparator;

public class SistemaReserva extends Ventana { private static final long serialVersionUID = -6870755539190964385L; private JLabel text1, text2, text3, text4, logo; private LocalDate fechaHoy; private JSeparator separador; private ImageIcon img1,img2,img3; private JButton registro, busqueda; private JPanel panel;

@Override
public void AgregarElem() {

    this.fechaHoy = LocalDate.now();
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
    String nuevoFormato = fechaHoy.format(formatter);

    String texto = "Controle y administre de forma óptima y fácil el flujo de reservas y de huespédes del hotel.\n\n";
    texto += "Este herramienta le permitirá llevar un control completo y detallado de sus reservas y huéspedes, tendrá acceso a heramientas especiales para tareas especificas como lo son:\n";
    texto += "- Registro de Reservas y Huéspedes\n";
    texto += "- Edición de Reservas y Huéspedes existentes\n";
    texto += "- Eliminar todo tipo de registros\n";

    this.text1 = new JLabel("Sistema de reservas Hotel Alura");
    this.text2 = new JLabel("Hoy es "+nuevoFormato);
    this.text3 = new JLabel("Bienvenido");
    this.text4 = new JLabel(texto);
    this.panel = new JPanel();
    this.logo =new JLabel();
    this.separador= new JSeparator();
    this.registro = new JButton("Registro de reservas");
    this.busqueda = new JButton("Búsqueda");



    this.img1= new ImageIcon(getClass().getResource("/img/aH-150px.png"));
    this.img2= new ImageIcon(getClass().getResource("/imgSistemaReserva/reservado.png"));
    this.img3= new ImageIcon(getClass().getResource("/imgSistemaReserva/pessoas.png"));

    this.logo.setIcon(img1);
    this.registro.setIcon(img2);
    this.busqueda.setIcon(img3);

    this.registro.setBorder(null);
    this.busqueda.setBorder(null);

    this.panel.setBackground(super.colorBlue);
    this.registro.setBackground(super.colorBlue);
    this.busqueda.setBackground(super.colorBlue);

    this.registro.setHorizontalAlignment(JButton.LEFT);
    this.busqueda.setHorizontalAlignment(JButton.LEFT);
    //this.setComponentZOrder(this.panel, 0);



    this.text4.setBorder(BorderFactory.createLineBorder(super.colorBlue, 2));
    this.panel.setBounds(0,0,300,800);
    this.logo.setBounds(60, 60, 150, 150);
    this.separador.setBounds(60, 220, 150, 50);
    this.registro.setBounds(60, 260, 250, 30);
    this.busqueda.setBounds(60, 300, 250, 30);
    this.text1.setBounds(350, 0, 200, 30);
    this.text2.setBounds(350, 10, 200, 30);
    this.text3.setBounds(350, 20, 200, 30);
    this.text4.setBounds(350, 40, 700, 100);


    this.add(this.panel);
    this.add(this.logo);
    this.add(this.separador);
    this.add(this.registro);
    this.add(this.busqueda);
    this.add(this.text1);
    this.add(this.text2);
    this.add(this.text3);
    this.add(this.text4);

}

public static void main(String[] args) {
    SistemaReserva n = new SistemaReserva();
    n.iniciar();

}

}

1 respuesta

Acerca de Jlabel:

¿Ha intentado utilizar el método setPreferredSize (o setSize) con el valor del tipo dimensión? Por ejemplo:

jlabelObject.setPreferredSize(new Dimension(100, 200)); // 100 es la altura, 200 es la longitud

Acerca de JButton:

¿Has probado a usar algún formato de diseño para agrupar los botones y luego establecer el orden en el panel? Por ejemplo BoxLayout.

Fuentes: