Come posso modificare il menu della finestra di un JFrame in Java? Quello è quello (in Windows) in alto a sinistra, dietro l'icona dell'applicazione, che contiene elementi come "Ripristina", "Sposta", "Riduci", "Ridimensiona" ...Modificare il menu della finestra in Java
7
A
risposta
1
Purtroppo ho trovato solo un modo per farlo con la "decorazione metallica" (con ciò intendo dire fare JFrame.setDefaultLookAndFeelDecorated(true);
). Ovviamente aggiornerò la risposta se ne trovo una con il sistema LaF, ma penso che valga ancora la pena dare una risposta.
uscita:
Codice:
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.io.BufferedReader;
import java.io.UnsupportedEncodingException;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
public class Example {
public Example() {
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame();
JMenu systemMenu = getSystemMenu(frame);
systemMenu.add(new JMenuItem("New JMenuItem"), 0);
for (Component component : systemMenu.getPopupMenu().getComponents()) {
if (component.toString().contains("JMenu")) {
((JMenuItem) component).setForeground(Color.RED);
}
}
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
private JMenu getSystemMenu(JFrame frame) {
for (Component c1 : frame.getLayeredPane().getComponents()) {
if (c1.toString().contains("MetalTitlePane")) {
for (Component c2 : ((Container) c1).getComponents()) {
if (c2.toString().contains("SystemMenuBar")) {
return (JMenu) ((Container) c2).getComponent(0);
}
}
}
}
return null;
}
public static void main(String args[]) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new Example();
}
});
}
}
Problemi correlati
- 1. Come modificare il titolo della finestra in campagna?
- 2. Come modificare il titolo della finestra in Qt?
- 3. Come modificare il titolo della finestra di dialogo JFileChooser
- 4. Eventi per il trascinamento della finestra in Java
- 5. Ottieni il titolo corrente della finestra attiva in Java
- 6. Ordine z della finestra in java
- 7. Come modificare la dimensione della finestra WPF in modo dinamico?
- 8. Gli elementi Java compaiono solo dopo il ridimensionamento della finestra
- 9. SWT Java: come impedire il ridimensionamento della finestra?
- 10. Bootstrap: in una finestra di dialogo modale, come faccio a espandere il menu a discesa all'esterno della finestra di dialogo?
- 11. aggiorna la finestra della console con java
- 12. Come modificare lo stile della finestra "forzata" di Android?
- 13. Modificare il nome della raccolta in mongodb
- 14. Come rendere il menu della scheda Vim Vim per apparire come il menu della scheda Console
- 15. Modificare il valore "nome" di un'applet Java firmata
- 16. Come modificare il colore predefinito della finestra di dialogo DatePicker e TimePicker in Android?
- 17. Come modificare il titolo della finestra da una cornice in javascript?
- 18. Come modificare il colore di sfondo della finestra 'code definition' in Visual Studio 2008?
- 19. NME Modificare il titolo della finestra in C++ e Neko target
- 20. Come modificare il titolo della finestra di dialogo Appcompat e il colore del divisore del titolo?
- 21. Come modificare la larghezza del menu a discesa utilizzando il plug-in Bootstrap Multiselect per jQuery?
- 22. chiudi finestra evento in java
- 23. SVN Tortoise - come modificare il menu di scelta rapida?
- 24. Android Come modificare il menu della barra delle azioni da Fragment
- 25. Come modificare l'altezza del menu a discesa Seleziona in lucido?
- 26. Menu espandibile durante il caricamento della pagina
- 27. Gestire la chiusura della finestra workbench nell'applicazione RCP Java
- 28. Come modificare il segnaposto del menu a discesa selectize.js?
- 29. Come verificare le dimensioni della finestra corrente in java swing?
- 30. Come modificare la dimensione del testo Menu
utilizzando alcuni dei (necessari alcuni metodi aggiuntivi, mucchio di codice) personalizzato L & F, la sostanza (e un altro, ad esempio, JGoodies) è un buon inizio, nota una parte di L & F può avere un problema con Java8 – mKorbel