JDialog: eliminar la barra de título, mantener el borde
¿Es posible eliminar la barra de título de un JDialog, pero manteniendo el borde?
La base SSCCE se ve así:
package test;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.SwingUtilities;
public class SSCCE extends JFrame {
private JDialog dialog;
public SSCCE() {
dialog = new JDialog();
dialog.setSize(100, 100);
dialog.add(new JList<>(new String[] { "One", "Two", "Three" }));
dialog.setUndecorated(true);
setSize(300, 200);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public void showDialog() {
dialog.setLocationRelativeTo(this);
dialog.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
SSCCE ex = new SSCCE();
ex.setVisible(true);
ex.showDialog();
}
});
}
}
Ejecutándolo veo esto:
Pero no quiero la barra de título en el JDialog. La respuesta estándar es usarsetUndecorated(true)
. Pero también pierdo los bordes de la ventana, y no quiero eso. Se ve como esto:
Lo que quiero es algo así como esta maqueta:
¿Cómo lo logro?
EDITAR:
Intenté ir con uno de los bordes de LaF, pero obtengo algunos resultados extraños. Solo para probar fui con "RootPane.errorDialogBorder" y esperaba obtener un borde rojo grueso alrededor de mi diálogo. Pero en cambio obtuve esto:
Eso me parece la versión desenfocada del borde "RootPane.frameBorder". ¿Por qué conseguí ese en su lugar?