用Java怎么作工具栏?
最好是工具栏用|来分隔各种工具栏图标! (这个可选)
给点提示或意见都可!
最好是工具栏用|来分隔各种工具栏图标! (这个可选)
给点提示或意见都可!
解决方案 »
- JDialog与JFrame之间传值的问题
- 如何用JAVA实现一个数组的快速排序,求代码
- 4.编写程序输出下列文字:
- 请问System.exit(1)是什么意思?那个小括号里的“1”代表什么意思?
- 系统数据并发性的问题???欢迎踊跃发表!!!
- 新手问题,我怎么样才能在一个类中使用在另一个单独文件中定义的类?
- 怎么让jtextfield只接受数字??
- java.sql.SQLException: ORA-01000: 超出打开游标的最大数
- Select * from tableName如何通过结果集得到字段信息?
- [问题]如何像网络蜘蛛哪样爬取网页
- java 的udp服务器端代码
- IO包中 字符串的问题
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.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);
}}