Tag: jmenuitem

单击JMenuItem时如何获取JMenu的名称

如何获得持有点击的JMenuItem的JMenu的名称? 我试过这样做: public void actionPerformed(ActionEvent arg0) { JMenu menuthing = (JMenu)(arg0.getSource()); String menuString = menuthing.getText(); JMenuItem source = (JMenuItem)(arg0.getSource()); String colorType = source.getText(); 但它给了我这个错误: Exception in thread “AWT-EventQueue-0” java.lang.ClassCastException: javax.swing.JMenuItem cannot be cast to javax.swing.JMenu 那么有没有办法转换为JMenu,或其他一些方法来确定名称? 谢谢。

如何设置JMenuItem的大小?

正如你所看到的,拥有这些JMenuItem很难看。 菜单项的宽度非常小。 这是代码: JMenu menuOne=new JMenu(“MenuOne”); JMenu menuTwo=new JMenu(“MenuTwo”); JMenu menuThree=new JMenu(“MenuThree”); JMenu menuFour=new JMenu(“MenuFour”); JMenuBar mbar=new JMenuBar(); //add the menu to menubar mbar.add(menuOne); JMenuItem OneItOne=new JMenuItem(“1”); JMenuItem OneItTwo=new JMenuItem(“2″); menuOne.add(OneItOne); menuOne.addSeparator(); menuOne.add(OneItTwo); mbar.add(menuTwo); mbar.add(menuThree); mbar.add(menuFour); setJMenuBar(mbar); 只需在String中添加一些空格即可(例如”1 ” ),但有没有更好的方法来设置JMenuItem的首选长度? 我尝试过OneItTwo.setSize() ,但失败了。

JMenuItems在JLayeredPane中绘制更高的组件

我在JLayeredPane的一层上的JPanel中有一组JMenuItems,在更高层上的JPanel中绘制了一个模拟的游标。 当菜单项重新绘制时,它们会在模拟光标上绘制(不会触发光标图层的重绘)。 有趣的是,如果我用JButtons或JLabel代替菜单项,每次重新绘制菜单项时都会正确绘制光标。 如何确保重新绘制菜单项会导致较高层的受影响区域重新绘制,而不直接在分层窗格上调用repaint()? 我所描述的情况与现实有些简化:菜单项可能深深地嵌套在分层窗格的子项中,并且它们根本不应该知道分层窗格。 这是一段伪代码,说明了我所描述的内容: public void initGui(Dimension size) { JLayeredPane layeredPane = new JLayeredPane(); layeredPane.setSize(size); menuPanel = new JPanel(); menuPanel.setSize(size); layeredPane.add(menuPanel, BOTTOM_LAYER); JPanel cursorPanel = new CursorPanel(); cursorPanel.setSize(size); layeredPane.add(cursorPanel, TOP_LAYER); } public void showMenu(Component[] menuItems) { JPanel menu = new JPanel(); for (Component c: menuItems) menu.add(c); menuPanel.add(menu); }

如何将JMenuItem对齐更改为右对齐

我用netBeans编辑器在java中编写了一个程序。 我的表格有一个jmenuBar ,右边对齐一些jmenu 。 例如, jmenu1有一些jmenuItem ,我想要对齐所有jmenuitem的文本。 当我将它们的水平对齐方式更改为右侧时,运行时文本未显示。 menuItem1.setHorizontalAlignment(SwingConstants.RIGHT); 我怎么能这样做? http://sofzh.miximages.com/java/18431917276667197781.jpg

你如何制作菜单项(JMenuItem)的快捷方式?

所以我注意到在awt中有一个MenuItem构造函数用于添加CTRL +(某些键)快捷方式,但JMenuItem没有这样的构造函数。 这样做的正确方法是什么? 我需要一个平等的awt: MenuItem mi = new MenuItem(“Copy”, new MenuShortcut(KeyEvent.VK_C)); 但对于Swing。

更改菜单栏和菜单项字体

我正在尝试使菜单栏项目和项目的项目变得越来越小,我之前已经在这里进行过一段时间的搜索(所以请不要将其标记为重复请)并且我发现的任何post都没有工作。 我尝试了以下代码但没有成功: Font f = new Font(“sans-serif”, Font.PLAIN, 12); UIManager.put(“menuBar.font”, f); 和 menuBar.setFont(new Font(menuBar.getFont().getFontName(), menuBar.getFont().getStyle(), 12)); 这是我的代码,我正在尝试编辑字体: private class foo{ private JMenu mnArchivo; private JMenuBar menuBar; menuBar = new JMenuBar(); frmAdministracinHospital.setJMenuBar(menuBar); JRadioButtonMenuItem rdbtnmntmGrande = new JRadioButtonMenuItem(“Grande”); rdbtnmntmGrande.addActionListener(new MiGrandeActionListener()); rdbtnmntmGrande.setIcon(new ImageIcon(PrincipalWindow.class.getResource(“/presentacion/fontbig.png”))); buttonGroup.add(rdbtnmntmGrande); mnTamanoFuente.add(rdbtnmntmGrande); private class MiGrandeActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { Font f […]

将ActionListener添加到JMenuItem

我刚刚开始了一个简单的GUI项目,在创建菜单栏时,我遇到了一个我发现无法解释的错误。 我想使用addActionListener将一个ActionListener添加到JMenuItem ,就像我过去所做的那样。 但是,当我应用所述方法时,Eclipse会给出一个错误:“令牌上的语法错误”addActionListener“,=此符号后的预期值。” 我唯一的想法是,也许addActionListener被解释为属性而不是方法……但我过去使用过这种方法,所以我知道它有效。 我不确定我应该提供多少代码,所以如果我想编辑更多,请告诉我。 package com.movethehead; import javax.swing.JFrame; import javax.swing.SwingUtilities; import javax.swing.JMenuBar; import javax.swing.JMenu; import javax.swing.JMenuItem; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; @SuppressWarnings(“serial”) public class Main extends JFrame { private final int W = 500; private final int H = 500; JMenuBar menuBar = new JMenuBar(); JMenu file = new JMenu(“File”); JMenuItem exitItem = new […]

JMenuBar SelectionModel ChangeListener仅触发一次

我试图让我的JMenuBar模拟Firefox和iTunes菜单栏的行为。 行为:菜单栏最初是隐藏的。 但是,当您按Alt ,会出现菜单栏(选择第一个项目),当您没有选择菜单项时,菜单栏会消失。 我的想法是通过其SelectionModel上的ChangeListener监听JMenuBar选择更改。 但是,附加的SSCCE的行为并不理想。 框架加载时, JMenuBar不可见。 按Alt ,会出现菜单栏,并选择第一个菜单(感谢WindowsLookAndFeel )。 但是,每次后续的Alt按下都不会触发ChangeEvents 。 我无法弄清楚为什么…… 有人有光照吗? public class MenuBarTest extends javax.swing.JFrame { public MenuBarTest() { initComponents(); jMenuBar1.setVisible(false); jMenuBar1.getSelectionModel().addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { System.out.println(e.toString()); jMenuBar1.setVisible(jMenuBar1.isSelected()); System.out.println(jMenuBar1.isSelected()); System.out.println(jMenuBar1.getSelectionModel().isSelected()); } }); } private void initComponents() { jMenuBar1 = new javax.swing.JMenuBar(); jMenu1 = new javax.swing.JMenu(); jMenuItem1 […]

在JPopupmenu中对齐图标和JCheckbox

我在JPopupMenu中遇到了一些图标和复选框的问题。 复选框和图标未对齐 项目创建如下: JMenuItem deleteAttributeMenuItem = new JMenuItem(locale.getString(“TREE_AttrDelete”), iconDelete); JMenuItem primaryKeyAttributeMenuItem = new JCheckBoxMenuItem(locale.getString(“TREE_AttrChkBoxPK”)); 请看看图片: 有小费吗?

Java JMenuItem ActionListener

我的JMenuBar上的ActionListener需要一些帮助。 没有错误; 但是每次单击JMenuItem时,它都会触发与JMenuItem关联的所有操作。 我的问题是:我在ActionListener代码中做得对吗? 我对ActionListener类不太确定。 我正在尝试将我的ActionListener与Button逻辑分开。 如果有人对我可能做错了什么有任何想法,请指出。 这是我的代码: package MenuBar; import java.awt.*; import javax.swing.*; import java.awt.event.*; public class SimpleMenuBar{ private static final LayoutManager grid = new GridLayout(0, 1); public JMenuBar MenuBar; public JMenu MenuFile, MenuEdit, MenuOption; public JMenuItem ItemNew, ItemOpen, ItemSave, ItemExit, ItemCopy, ItemCut, ItemPaste; ButtonGroup direction; JRadioButtonMenuItem forwardradio, backwardradio; JCheckBoxMenuItem CheckCase; String input = […]