$('field_name').innerHTML = 'Your text.';
Одна из изящных функций Прототипа - то, что $('field_name')
делает то же самое как document.getElementById('field_name')
. Используйте его!:-)
ответ John Topley с помощью Прототипа update
функция является другим хорошим решением.
JMenuItem плохо работает с макет JMenuBar
В строке меню используется BoxLayout, который пытается растянуть компонент до максимального размера. Попробуйте использовать:
menuItem.setMaximumSize( menuItem.getPreferredSize() );
Если вам нужна дополнительная помощь, опубликуйте свой SSCCE с указанием проблемы.
Следующий код реализует решение camickr, хотя я бы придумал То же самое после того, как мы увидели, как по умолчанию JMenuItem
отображаются в JMenuBar
. Он выглядит достаточно аутентично и реагирует на щелчки, но не на мнемонику.
Я попытался использовать ускорители JMenuItems (см. Код), и это работает, но выглядит очень странно.
public class TheDude19 extends JFrame {
private class Action1 extends AbstractAction {
private Action1() {
super("Action1");
putValue(MNEMONIC_KEY, (int) '1');
// putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_A, KeyEvent.CTRL_MASK));
}
public void actionPerformed(ActionEvent arg0) {
System.out.println("Action 1!");
}
}
private class Action2 extends AbstractAction {
private Action2() {
super("Action2");
putValue(MNEMONIC_KEY, (int) '2');
}
public void actionPerformed(ActionEvent arg0) {
System.out.println("Action 2!");
}
}
private class NarrowMenuItem extends JMenuItem {
public NarrowMenuItem(Action a) {
super(a);
}
public Dimension getMaximumSize() {
return new Dimension(super.getPreferredSize().width, super.getMaximumSize().height);
}
}
public TheDude19() {
JMenuItem menu1 = new NarrowMenuItem(new Action1());
JMenuItem menu2 = new NarrowMenuItem(new Action2());
JMenuBar mb = new JMenuBar();
mb.add(menu1);
mb.add(menu2);
add(mb, BorderLayout.NORTH);
setSize(400, 300);
}
public static void main(String[] args) {
(new TheDude19()).setVisible(true);
}
}
Возможно, вы забыли свой JMenu. Вам нужно поместить JMenuItem в JMenu, а затем добавить JMenu в JMenuBar.
Чтобы создать строку меню, вам нужно сделать что-то вроде следующего:
JMenuBar myBar = new JMenuBar();
JMenu fileMenu = new JMenu("File");
JMenuItem newFileMenuItem = new JMenuItem("New");
newFileMenuItem.addActionListener(new ActionListerner() { ... Define Action Handler here... });
fileMenu.add(newFileMenuItem);
myBar.add(fileMenu);