JDialog: убрать заголовок, сохранить границу
Можно ли удалить строку заголовка из JDialog, но сохранить границы?
База SSCCE выглядит так:
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();
}
});
}
}
Запустив это я вижу это:
Но я не хочу заголовок на JDialog. Стандартный ответ заключается в использованииsetUndecorated(true)
, Но потом я тоже теряю границы окон и не хочу этого. Выглядит так:
Что я хочу, это что-то вроде этого макета:
Как мне этого добиться?
РЕДАКТИРОВАТЬ:
Я пытался пройти с одной из границ LaF, но получаю странные результаты. Просто для тестирования я пошел с "RootPane.errorDialogBorder" и ожидал получить жирную красную рамку вокруг моего диалога. Но вместо этого я получил это:
Это выглядит как не сфокусированная версия границы "RootPane.frameBorder". Почему я получил это вместо этого?