Если вы хотите сохранить собственные кнопки, это зависит от операционной системы.
- Windows: Нет, вам придется использовать
frame.setUndecorated(true);
и копировать кнопки самостоятельно. Тогда это будет работать на всех платформах, но для достижения собственного внешнего вида вам нужно будет реализовать его для каждой отдельно. - macOS: если вы используете jdk 12 или новее, вы можете добиться этого с помощью:
rootPane.putClientProperty(“apple.awt.fullWindowContent“, true);
rootPane.putClientProperty(“apple.awt.transparentTitleBar“, true);
Это взято из тестовых примеров jdk:
SwingUtilities.invokeLater(() -> {
frame = new JFrame("Test");
frame.setBounds(200, 200, 300, 100);
rootPane = frame.getRootPane();
JComponent contentPane = (JComponent) frame.getContentPane();
contentPane.setBackground(Color.RED);
rootPane.putClientProperty("apple.awt.fullWindowContent", true);
rootPane.putClientProperty("apple.awt.transparentTitleBar", true);
frame.setVisible(true);
});
Обратите внимание, что все создание и изменение пользовательского интерфейса должно происходить в главном потоке Swing с использованием SwingUtilities#invokeLater
или SwingUtilities#invokeAndWait
.
Какова ваша цель в удалении строки заголовка, но при удерживании кнопок?