Je ne suis pas sorti tout de suite, alors prenez note.
MainWindow.java
public class MainPanel extends JPanel{
public MainPanel(){
JButton button1 = new JButton("bouton");
add(button1);
}
public static void main(String[] args){
JFrame frame = new JFrame();
MainPanel mainPanel = new MainPanel();
frame.getContentPane().add(mainPanel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
Si rien n'est fait, MainWindow
apparaîtra dans la barre de menus, procédez comme suit.
Confirmé avec macOS 10.12.6 et JRE 9.0.1.
MainWindow.java
public class MainPanel extends JPanel{
public MainPanel(){
JButton button1 = new JButton("bouton");
add(button1);
}
}
//Faites un autre cours. N'importe quel nom
class Loader{
public static void main(String[] args){
//Utiliser la barre de menus système
System.setProperty("apple.laf.useScreenMenuBar", "true");
//Spécifier le nom de l'application
System.setProperty("apple.awt.application.name", "test");
JFrame frame = new JFrame();
MainPanel mainPanel = new MainPanel();
frame.getContentPane().add(mainPanel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
Spécifiez les propriétés du JRE avec System.setProperty
. À ce stade, le point est de spécifier ** avant que Swing ne soit chargé.
Si vous écrivez JPanel dans une classe d'extension, Swing sera chargé en premier. Par conséquent, il est nécessaire de créer une classe distincte qui n'est pas liée à Swing et de l'écrire au début de la méthode principale.
Recommended Posts