Я тестировал JColorChooser в своем Java-приложении, используя macOS, Windows и Linux (CentOS 7).
В CentOS отображаются кнопки «Свернуть», «Развернуть» и «Закрыть», в macOS — только кнопки «Развернуть» и «Закрыть», наконец, в Windows — только кнопка «Закрыть».
Проблема заключалась в том, что я нажал кнопку "Свернуть" в CentOS, и мне нужно было закрыть приложение.
На мой взгляд, эта кнопка не должна отображаться, потому что когда вы нажимаете приложение, оно блокируется и больше не позволяет вам работать.
Использование Windows 10
Использование macOS
Использование CentOS 7
Вот код:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class JDialogMinimizeButtonLinux extends JFrame {
public JDialogMinimizeButtonLinux() {
JButton button = new JButton("JDialog showing Minimize Button On Linux");
button.addActionListener(new ActionListener() {
@Override public void actionPerformed( ActionEvent evt) {
new JColorChooser().showDialog(
JDialogMinimizeButtonLinux.this,
"Minimize Button Locks this Example on Linux", Color.gray);
}
});
JPanel outer = new JPanel();
outer.setLayout(new BoxLayout(outer, BoxLayout.LINE_AXIS));
outer.add(button);
add(outer);
setSize(600, 300);
setVisible(true);
}
public static void main( String args[] ) {
try {
UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
} catch (ClassNotFoundException | InstantiationException |
IllegalAccessException | UnsupportedLookAndFeelException ex) {
System.out.println("ex:" + ex.toString());
}
JDialogMinimizeButtonLinux app = new JDialogMinimizeButtonLinux();
app.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
}
Теперь Вопросы:
это происходит только в CentOS?
Это считается ошибкой?
Для меня это плохая реализация JColorChooser
и JFileChooser
или их родительского класса JDialog
в Linux.