高分求用Java怎么作工具栏?解决后再加分!
用Java怎么作工具栏?
最好是工具栏用|来分隔各种工具栏图标! (这个可选)
给点提示或意见都可!
[解决办法]
呵呵,你得自己继承一个JButton,我以前做过这个东西,基本是自己覆盖paint方法画了一个,不过建议你去网上找找现成的代码片段修改一下。
[解决办法]
Swing不是有JToolBar.按需要应用啊
[解决办法]
JToolBar只是个Button的容器,这个问题的重点在于楼主的button,直接用JButton弄几个icon上去的效果很恶心,我以前试过。
[解决办法]
Eclipse的workbench
[解决办法]
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); }}
[解决办法]
上面是菜单使用示例,下面是工具栏使用示例.应该对你有帮助.
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JToolBar;
public class JToolBarUseDemo extends JPanel implements ActionListener {
private JTextArea textArea;
private static String NEW = "new";
private static String OPEN = "open";
private static String SAVE = "save";
private static String SEARCH = "search";
public JToolBarUseDemo() {
super(new BorderLayout());
// 创建工具栏。
JToolBar toolBar = new JToolBar();
// 在工具栏上安放按钮
addButtons(toolBar);
// 为了显示输入创立文本域.
textArea = new JTextArea(5, 30);
textArea.setEditable(false);
// 为文本域添加滑动块
JScrollPane scrollPane = new JScrollPane(textArea);
// 安放组件
setPreferredSize(new Dimension(450, 110));
add(toolBar, BorderLayout.PAGE_START);
add(scrollPane, BorderLayout.CENTER);
}
protected void addButtons(JToolBar toolBar) {
JButton button = null;
// 新建按钮
button = makeButton("New", NEW, "新建", NEW);
toolBar.add(button);
// 打开按钮
button = makeButton("Open", OPEN, "打开", OPEN);
toolBar.add(button);
// 保存按钮
button = makeButton("Save", SAVE, "保存", SAVE);
toolBar.add(button);
// 搜索按钮
button = makeButton("Search", SEARCH, "搜索", SEARCH);
toolBar.add(button);
}
protected JButton makeButton(String imageName, String actionCommand,
String toolTipText, String altText) {
String imgLocation = "chapter11\\" + imageName + ".gif";
// 创建并初始化按钮
JButton button = new JButton();
// 按钮触发的命令字符
button.setActionCommand(actionCommand);
// 按钮提示信息
button.setToolTipText(toolTipText);
// 给按钮添加事件
button.addActionListener(this);
button.setIcon(new ImageIcon(imgLocation));
return button;
}
// 实现事件监听方法。获取点击的工具。
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
String description = null;
// 处理工具按钮
if (NEW.equals(cmd)) {
description = " <" + NEW + ">工具按钮";
} else if (OPEN.equals(cmd)) {
description = " <" + OPEN + ">工具按钮";
} else if (SAVE.equals(cmd)) {
description = " <" + SAVE + ">工具按钮";
} else if (SEARCH.equals(cmd)) {
description = " <" + SEARCH + ">工具按钮";
}
// 向文本域中添加信息
textArea.append(description + "\n");
}
public static void main(String[] args) {
// 设置窗体的属性
JFrame frame = new JFrame("JToolBarUseDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建面板
JToolBarUseDemo newPane = new JToolBarUseDemo();
newPane.setOpaque(true);
frame.setContentPane(newPane);
// 显示窗体
frame.pack();
frame.setVisible(true);
}
}