我已经有了JMenu设置。我已经创建了一个带有图标的工具栏,但我不确定如何将操作与工具栏按钮关联起来。这就是我如何制作工具栏
public class ToolBar {
ArrayList<JButton> buttons;
JButton saveButton, exportButton, openButton, rotateLeftButton, rotateRightButton, zoomIButton, zoomOButton;
public ToolBar() {
buttons = new ArrayList<JButton>();
buttons.add(new JButton(new ImageIcon("src/icons8-save-30.png")));
buttons.add(new JButton(new ImageIcon("src/icons8-export-30.png")));
buttons.add(new JButton(new ImageIcon("src/icons8-save-30.png")));
buttons.add(new JButton(new ImageIcon("src/icons8-rotate-left-30.png")));
buttons.add(new JButton(new ImageIcon("src/icons8-rotate-right-30.png")));
buttons.add(new JButton(new ImageIcon("src/icons8-zoom-in-30.png")));
buttons.add(new JButton(new ImageIcon("src/icons8-zoom-out-30.png")));
}
public JToolBar createToolBar() {
JToolBar tools = new JToolBar();
for (int i = 0; i < buttons.size(); i++) {
tools.add(buttons.get(i));
}
return tools;
}
}
如何将以下文件打开操作添加到工具栏中的一个J按钮?
public class FileOpenAction extends ImageAction {
FileOpenAction(String name, ImageIcon icon, String desc, Integer mnemonic) {
super(name, icon, desc, mnemonic);
putValue(ACCELERATOR_KEY,
KeyStroke.getKeyStroke(KeyEvent.VK_O, Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx()));
}
public void actionPerformed(ActionEvent e) {
JFileChooser fileChooser = new JFileChooser();
int result = fileChooser.showOpenDialog(target);
if (result == JFileChooser.APPROVE_OPTION) {
try {
String imageFilepath = fileChooser.getSelectedFile().getCanonicalPath();
target.getImage().open(imageFilepath);
} catch (Exception ex) {
System.exit(1);
}
}
target.repaint();
target.getParent().revalidate();
}
}
如何将打开文件操作添加到工具栏上的一个J按钮?
- 您不需要ToolBar类。JToolBar可以满足您的所有需求
- 创建所有的Actions,并将它们放在ActionMap中
- 创建工具栏时,可以对工具栏上的每个按钮使用
toolbar.add(actionMap.get(ACTION_KEY)
。如果您还想在面板上的按钮上执行该操作,请使用相同的键加载相同的操作