Ho cercato di sovraccaricare JMenu e inserire un codice personalizzato per supportare un JTextField ma non sta andando bene. Il mio scopo principale qui è quello di aggiungere un campo di ricerca alla destra delle mie voci di menu. Quindi ho qualcosa come File, Modifica, aiuto a sinistra e poi a destra sarebbe la barra di ricerca, quasi come su una barra di ricerca di Google in alcuni browser. Qualcuno ha un'idea di come potrei fare per aggiungere questa funzionalità?Come posso aggiungere un JTextField a un MenuBar di JFrame?
risposta
ho mai vedere che come JMenuItem
, penso che alyways collocati in JMenuBar
import java.awt.ComponentOrientation;
import javax.swing.*;
public class MenuGlueDemo {
public MenuGlueDemo() {
JMenuBar menuBar = new JMenuBar();
menuBar.add(createMenu("Menu 1"));
menuBar.add(createMenu("Menu 2"));
menuBar.add(createMenu("Menu 3"));
menuBar.add(new JSeparator());
menuBar.add(new JButton(" Seach .... "));
menuBar.add(new JTextField(" Seach .... "));
menuBar.add(new JComboBox(new Object[]{"height", "length", "volume"}));
menuBar.add(Box.createHorizontalGlue());
menuBar.add(createMenu("About"));
JFrame frame = new JFrame("MenuGlueDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(menuBar);
frame.pack();
frame.setVisible(true);
}
public JMenu createMenu(String title) {
JMenu m = new JMenu(title);
m.add("Menu item #1 in " + title);
m.add("Menu item #2 in " + title);
m.add("Menu item #3 in " + title);
if (title.equals("About")) {
m.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
}
return m;
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
MenuGlueDemo menuGlueDemo = new MenuGlueDemo();
}
});
}
}
Vorrei poterlo più volte più di una volta, grazie per un'altra eccellente risposta! – Grammin
sei il benvenuto, contento di aiutare +1, e non è facile mettere JComponent su JMenuItem, ho usato solo JDialog/JWindow (GridLayout) con JComponents aggiunto – mKorbel
Ah ok, grazie per il consiglio – Grammin
- 1. Non è possibile aggiungere JTextField a JFrame
- 2. Come aggiungere padding a un jtextfield
- 3. Come aggiungere un ImageIcon a un JFrame?
- 4. Come aggiungere più componenti a un JFrame?
- 5. Come aggiungere le chiavi ShortCut a JTextField?
- 6. Come convalidare un JTextField?
- 7. Devo aggiungere componenti a un JFrame o al suo contentPane?
- 8. Come mettere a fuoco un JFrame?
- 9. Come aggiungere supporto per il ridimensionamento quando si utilizza un JFrame non decorato?
- 10. aggiunta di una console a un Jframe
- 11. Come rendere un JFrame davvero a schermo intero?
- 12. Estensione di un JFrame
- 13. Come capovolgere un JFrame e i suoi figli?
- 14. Come posso aggiungere un oggetto a un ListBox?
- 15. Come posso aggiungere un badge a un UIButton standard?
- 16. Come posso aggiungere un valore booleano a un NSDictionary?
- 17. Java: Aggiungi segnaposto su JTextField
- 18. Gestione degli eventi di modifica in un JTextField
- 19. Come posso visualizzare una BufferedImage in un JFrame?
- 20. Come posso aggiungere dinamicamente campi di input a un modulo?
- 21. Come posso aggiungere coppie di valori chiave a un array?
- 22. Come posso aggiungere un contatto a livello di codice?
- 23. Come posso aggiungere un analizzatore di protocollo personalizzato a wireshark?
- 24. Creare un JFrame/ContentPane arrotondato
- 25. Posso aggiungere un'istruzione if a un parametro?
- 26. Come aggiungere componenti a un JPanel in fase di esecuzione
- 27. come creare un jtextfield con un formato data fisso?
- 28. Come cancellare JTextField quando il mouse fa clic su JTextField
- 29. Utilizzo di due JPanel in un JFrame
- 30. Come impedire a JFrame di chiudersi
Perché non sta andando bene? Cosa * specificamente * sembra preoccuparti? – mre
@ mi sono imbattuto in un vicolo cieco in cui sto cercando di aggiungere la casella di testo anziché un pulsante. JMenuItem eredita da AbstractButton quindi non so come aggiungere una casella di testo invece di cambiare semplicemente il testo su un AbstractButton. Inoltre, non credo che questo sia il modo migliore per aggiungere la funzionalità di cui sto parlando perché sembra che potrei dover cambiare un sacco di cose all'interno di JMenu. Suppongo che sto cercando una guida su un modo migliore per farlo, quindi cosa sto cercando di fare attualmente. – Grammin