gpt4 book ai didi

java - 如何使用 Java Swing Actions 在 Netbeans 中创建菜单项和工具栏项

转载 作者:太空宇宙 更新时间:2023-11-04 08:04:17 25 4
gpt4 key购买 nike

我正在读一本java书,作者使用相同的操作创建菜单项和工具栏项。我如何使用 NetBeans 做到这一点?这是代码:

    public class ActionInterfaceDemo extends JFrame{

private JPanel buttonPanel = new JPanel();
private FlowLayout flowLayout = new FlowLayout();

//---Default constructor
public ActionInterfaceDemo()
{
//Create image icons
ImageIcon leftImageIcon = new ImageIcon(getClass().getResource("image/leftAlignment.png"));
ImageIcon centerImageIcon = new ImageIcon(getClass().getResource("image/centerAlignment.png"));
ImageIcon rightImageIcon = new ImageIcon(getClass().getResource("image/rightAlignment.png"));

//Create actions
Action leftAction = new MyAction("Left", leftImageIcon, "Left alignment for the buttons in the panel", new Integer(KeyEvent.VK_L), KeyStroke.getKeyStroke(KeyEvent.VK_L, ActionEvent.CTRL_MASK));
Action centerAction = new MyAction("Center",centerImageIcon, "Center alignment for the buttons in the panel", new Integer(KeyEvent.VK_C), KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK));
Action rightAction = new MyAction("Right", rightImageIcon, "Right alignment for the buttons in the panel", new Integer(KeyEvent.VK_R), KeyStroke.getKeyStroke(KeyEvent.VK_R, ActionEvent.CTRL_MASK));

//Create menus
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jmenuAlignment = new JMenu("Alignment");
setJMenuBar(jMenuBar1);
jMenuBar1.add(jmenuAlignment);

//Add actions to the menu
jmenuAlignment.add(leftAction);
jmenuAlignment.add(centerAction);
jmenuAlignment.add(rightAction);

//Add actions to the toolbar
JToolBar jToolBar1 = new JToolBar(JToolBar.HORIZONTAL);
jToolBar1.setBorder(BorderFactory.createLineBorder(Color.red));
jToolBar1.add(leftAction);
jToolBar1.add(centerAction);
jToolBar1.add(rightAction);

//Add buttons to the button panel
buttonPanel.setLayout(flowLayout);
JButton jbtLeft = new JButton(leftAction);
JButton jbtCenter = new JButton(centerAction);
JButton jbtRight = new JButton(rightAction);
buttonPanel.add(jbtLeft);
buttonPanel.add(jbtCenter);
buttonPanel.add(jbtRight);

//Add toolbar to the east and panel to the center
add(jToolBar1, BorderLayout.NORTH);
add(buttonPanel, BorderLayout.CENTER);
}


//inner class MyAction
private class MyAction extends AbstractAction
{
String name;

MyAction(String name, Icon icon)
{
super(name, icon);
this.name = name;
}

MyAction(String name, Icon icon, String desc, Integer mnemonic, KeyStroke accelerator)
{
super(name,icon);
putValue(Action.SHORT_DESCRIPTION, desc);
putValue(Action.MNEMONIC_KEY, mnemonic);
putValue(Action.ACCELERATOR_KEY, accelerator);
this.name = name;
}

@Override
public void actionPerformed(ActionEvent e) {
if (name.equals("Left"))
flowLayout.setAlignment(FlowLayout.LEFT);
else if (name.equals("Center"))
flowLayout.setAlignment(FlowLayout.CENTER);
else if (name.equals("Right"))
flowLayout.setAlignment(FlowLayout.RIGHT);

buttonPanel.revalidate();
}
}


/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
ActionInterfaceDemo frame = new ActionInterfaceDemo();
frame.setLocationRelativeTo(null); //Center the frame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("ActionInterfaceDemo");
//frame.pack();
frame.setSize(new Dimension(600, 200));
frame.setVisible(true);
}
}

谢谢。

最佳答案

JMenuItemJButton 都有一个 setAction() 方法,您可以使用该方法设置 Action 的同一实例。

关于java - 如何使用 Java Swing Actions 在 Netbeans 中创建菜单项和工具栏项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12325207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com