当前位置: 代码迷 >> J2SE >> 高分求用Java如何作工具栏?解决后再加分
  详细解决方案

高分求用Java如何作工具栏?解决后再加分

热度:77   发布时间:2016-04-24 13:18:18.0
高分求用Java怎么作工具栏?解决后再加分!
用Java怎么作工具栏?
最好是工具栏用|来分隔各种工具栏图标! (这个可选)
给点提示或意见都可!


------解决方案--------------------
呵呵,你得自己继承一个JButton,我以前做过这个东西,基本是自己覆盖paint方法画了一个,不过建议你去网上找找现成的代码片段修改一下。
------解决方案--------------------
Swing不是有JToolBar.按需要应用啊
------解决方案--------------------
JToolBar只是个Button的容器,这个问题的重点在于楼主的button,直接用JButton弄几个icon上去的效果很恶心,我以前试过。
------解决方案--------------------
Eclipse的workbench
------解决方案--------------------
Java code
import java.awt.Container;import java.awt.event.ActionEvent;import java.awt.event.InputEvent;import java.awt.event.KeyEvent;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import javax.swing.AbstractAction;import javax.swing.Action;import javax.swing.ButtonGroup;import javax.swing.JCheckBoxMenuItem;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JPanel;import javax.swing.JPopupMenu;import javax.swing.JRadioButtonMenuItem;import javax.swing.JTextField;import javax.swing.JToolBar;import javax.swing.KeyStroke;public class MenuUseDemo extends JFrame {    public static final int WIDTH = 250;    public static final int HEIGHT = 200;    private JMenuItem newItem;    private JMenuItem openItem;    private JMenuItem closeItem;    private JMenuItem saveItem;    private JMenuItem cutItem;    private JMenuItem copyItem;    private JMenuItem pasteItem;    private JMenuItem cutItemPop;    private JMenuItem copyItemPop;    private JMenuItem pasteItemPop;    private JRadioButtonMenuItem forwardItem;    private JRadioButtonMenuItem backwardItem;    private JPopupMenu popup;    private JTextField myTextField;    public MenuUseDemo() {        setTitle("MenuUseDemo");        setSize(WIDTH, HEIGHT);        Container contentPane = getContentPane();        JPanel textPanel = new JPanel();        // 创建显示菜单操作的文本区        myTextField = new JTextField("", 20);        textPanel.add(myTextField);        contentPane.add(textPanel);        // 创建菜单栏,并将菜单栏加入到框架中        JMenuBar menuBar = new JMenuBar();        setJMenuBar(menuBar);        // 创建菜单及菜单项,并添加快捷键和加速器        // “File”菜单        JMenu fileMenu = new JMenu("File");        // 设置菜单的快捷键        fileMenu.setMnemonic('F');        // 新建“New”菜单项,并添加共用的事件监听器        newItem = fileMenu.add(new ShowAction("New"));        // 设置菜单项的加速器        newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,                InputEvent.CTRL_MASK));        // 新建“Open”菜单项和监听器        openItem = fileMenu.add(new ShowAction("Open"));        openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,                InputEvent.CTRL_MASK));        // 增加分隔线        fileMenu.addSeparator();        // 新建“Save”菜单项和监听器        saveItem = fileMenu.add(new ShowAction("Save"));        saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,                InputEvent.CTRL_MASK));        // 初始设置“Save”菜单项为禁用状态        saveItem.setEnabled(false);        // 新建“Close”菜单项和监听器        closeItem = fileMenu.add(new ShowAction("Close"));        closeItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,                InputEvent.CTRL_MASK));        closeItem.setEnabled(false);        fileMenu.addSeparator();        // 新建“Exit”菜单项和监听器        JMenuItem exitItem = new JMenuItem("Exit", 'T');        exitItem.addActionListener(new AbstractAction("Exit") {            public void actionPerformed(ActionEvent event) {                System.exit(0);            }        });        exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,                InputEvent.CTRL_MASK));        fileMenu.add(exitItem);        // “Edit”菜单        JMenu editMenu = new JMenu("Edit");        // 设置菜单的快捷键        editMenu.setMnemonic('E');        // 新建“Cut”菜单项和监听器        cutItem = new JMenuItem("Cut", 'C');        editMenu.add(cutItem);        // 添加事件监听器        cutItem.addActionListener(new ShowAction("Cut"));        cutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U,                InputEvent.CTRL_MASK));        cutItem.setEnabled(false);        // 新建“Copy”菜单项和监听器        copyItem = new JMenuItem("Copy", 'Y');        copyItem.addActionListener(new ShowAction("Copy"));        copyItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Y,                InputEvent.CTRL_MASK));        copyItem.setEnabled(false);        // 新建“Paste”菜单项和监听器        pasteItem = new JMenuItem("Paste", 'P');        pasteItem.addActionListener(new ShowAction("Paste"));        pasteItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,                InputEvent.CTRL_MASK));        pasteItem.setEnabled(false);        editMenu.add(copyItem);        editMenu.add(pasteItem);        // “Search”菜单        JMenu searchMenu = new JMenu("Search");        searchMenu.setMnemonic('S');        // 创建单选按钮菜单项“Forward”和“Backward”        ButtonGroup group = new ButtonGroup();        forwardItem = new JRadioButtonMenuItem("Forward");        forwardItem.addActionListener(new ShowAction("Forward"));        forwardItem.setSelected(true);        forwardItem.setEnabled(false);        backwardItem = new JRadioButtonMenuItem("Backward");        backwardItem.addActionListener(new ShowAction("Backward"));        backwardItem.setEnabled(false);        group.add(forwardItem);        group.add(backwardItem);        searchMenu.add(forwardItem);        searchMenu.add(backwardItem);        // "View"菜单        JMenu viewMenu = new JMenu("View");        viewMenu.setMnemonic('V');        // 创建子菜单        JMenu optionMenu = new JMenu("Option");        optionMenu.setMnemonic('O');        // 创建复选框菜单项“ToolBar”和“Status”        JCheckBoxMenuItem toolItem = new JCheckBoxMenuItem("ToolBar");        JCheckBoxMenuItem statusItem = new JCheckBoxMenuItem("Status");        toolItem.addActionListener(new ShowAction("ToolBar"));        statusItem.addActionListener(new ShowAction("Status"));        // 将菜单项添加到子菜单中        optionMenu.add(toolItem);        optionMenu.add(statusItem);        // 将子菜单添加到“View”菜单中        viewMenu.add(optionMenu);        // 将菜单加入到菜单栏中        menuBar.add(fileMenu);        menuBar.add(editMenu);        menuBar.add(searchMenu);        menuBar.add(viewMenu);        // 弹出式菜单        popup = new JPopupMenu();        // 新建弹出式菜单中的“Cut”菜单项和监听器        cutItemPop = new JMenuItem("Cut", 'C');        cutItemPop.addActionListener(new ShowAction("CutPop"));        cutItemPop.setEnabled(false);        // 新建弹出式菜单中的“Copy”菜单项和监听器        copyItemPop = new JMenuItem("Copy", 'Y');        copyItemPop.addActionListener(new ShowAction("CopyPop"));        copyItemPop.setEnabled(false);        // 新建弹出式菜单中的“Paste”菜单项和监听器        pasteItemPop = new JMenuItem("Paste", 'P');        pasteItemPop.addActionListener(new ShowAction("PastePop"));        pasteItemPop.setEnabled(false);        popup.add(cutItemPop);        popup.add(copyItemPop);        popup.add(pasteItemPop);        // 实现弹出式菜单的弹出触发器        getContentPane().addMouseListener(new MouseAdapter() {            public void mouseReleased(MouseEvent event) {                if (event.isPopupTrigger())                    // 指定弹出式菜单的父组件以及显示位置                    popup                            .show(event.getComponent(), event.getX(), event                                    .getY());            }        });    }    // 菜单项的共用事件监听器    private class ShowAction extends AbstractAction {        public ShowAction(String name) {            super(name);        }        public void actionPerformed(ActionEvent event) {            // 实现菜单项的启用和禁用控制            if (event.getSource() == newItem || event.getSource() == openItem) {                saveItem.setEnabled(true);                closeItem.setEnabled(true);                cutItem.setEnabled(true);                copyItem.setEnabled(true);                pasteItem.setEnabled(true);                forwardItem.setEnabled(true);                backwardItem.setEnabled(true);                cutItemPop.setEnabled(true);                copyItemPop.setEnabled(true);                pasteItemPop.setEnabled(true);            }            if (event.getSource() == closeItem) {                saveItem.setEnabled(false);                closeItem.setEnabled(false);                cutItem.setEnabled(false);                copyItem.setEnabled(false);                pasteItem.setEnabled(false);                forwardItem.setEnabled(false);                backwardItem.setEnabled(false);                cutItemPop.setEnabled(false);                copyItemPop.setEnabled(false);                pasteItemPop.setEnabled(false);            }            // 在文本域中显示菜单选择结果            myTextField.setText(getValue(Action.NAME) + " selected.");        }    }    public static void main(String[] args) {        MenuUseDemo frame = new MenuUseDemo();        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        frame.setVisible(true);    }}
  相关解决方案