JDialog: Remova a barra de título, mantenha a borda
É possível remover a barra de título de um JDialog, mas mantendo a borda?
A SSCCE base é assim:
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();
}
});
}
}
Executando, vejo o seguinte:
Mas eu não quero a barra de título no JDialog. A resposta padrão é usarsetUndecorated(true)
. Mas também perco as bordas das janelas e não quero isso. Se parece com isso:
O que eu quero é algo como esta maquete:
Como faço para conseguir isso?
EDITAR:
Tentei ir com uma das fronteiras da LaF, mas estou obtendo alguns resultados estranhos. Apenas para teste, eu fui com "RootPane.errorDialogBorder" e esperava obter uma borda vermelha gorda em volta da minha caixa de diálogo. Mas, em vez disso, entendi:
Isso me parece a versão fora de foco da borda "RootPane.frameBorder". Por que eu peguei esse aqui?