参考文档:http://docs.oracle.com/javase/8/docs/api/index.html
1.菜单栏、主菜单、菜单选择的使用
package com.Swing;
import javax.swing.*;
import java.awt.event.*;
public class MenuDemo implements ActionListener {
JFrame f;
JMenuBar mb;//定义菜单栏
JMenu file, edit, help;//定义主菜单
JMenuItem cut, copy, paste, selectAll;//定义菜单选项
JTextArea ta;
JScrollPane js;
MenuDemo() {
f = new JFrame();
js=new JScrollPane();
cut = new JMenuItem("剪切");
copy = new JMenuItem("复制");
paste = new JMenuItem("粘贴");
selectAll = new JMenuItem("全选");
//添加监听者
cut.addActionListener(this);
copy.addActionListener(this);
paste.addActionListener(this);
selectAll.addActionListener(this);
mb = new JMenuBar();
file = new JMenu("文件");
edit = new JMenu("编辑");
help = new JMenu("帮助");
edit.add(cut);
edit.add(copy);
edit.add(paste);
edit.add(selectAll);
mb.add(file);
mb.add(edit);
mb.add(help);
ta = new JTextArea();
ta.setBounds(5, 5, 373, 325);
js.add(ta);
f.add(js);
f.add(mb);
f.add(ta);
f.setJMenuBar(mb);
f.setLayout(null);
f.setSize(400, 400);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == cut)
ta.cut();
if (e.getSource() == paste)
ta.paste();
if (e.getSource() == copy)
ta.copy();
if (e.getSource() == selectAll)
ta.selectAll();
}
public static void main(String[] args) {
new MenuDemo();
}
}
结果:
2.弹出式菜单的使用
package com.Swing;
import javax.swing.*;
import java.awt.event.*;
class PopupMenuDemo {
PopupMenuDemo() {
final JFrame f = new JFrame("演示");
final JLabel label = new JLabel();
label.setHorizontalAlignment(JLabel.CENTER);
label.setSize(400, 100);
final JPopupMenu popupmenu = new JPopupMenu("编辑");
JMenuItem cut = new JMenuItem("剪切");
JMenuItem copy = new JMenuItem("复制");
JMenuItem paste = new JMenuItem("粘贴");
popupmenu.add(cut);
popupmenu.add(copy);
popupmenu.add(paste);
f.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
//获取鼠标点击的位置
popupmenu.show(f, e.getX(), e.getY());
}
});
cut.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
label.setText("剪切菜单项选中");
}
});
copy.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
label.setText("复制菜单项选中");
}
});
paste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
label.setText("粘贴菜单项选中");
}
});
f.add(label);
f.add(popupmenu);
f.setSize(400, 400);
f.setLocationRelativeTo(null);
f.setLayout(null);
f.setVisible(true);
}
public static void main(String args[]) {
new PopupMenuDemo();
}
}
3.树形控件的使用
package com.Swing;
import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
public class TreeDemo {
JFrame f;
TreeDemo() {
f = new JFrame();
DefaultMutableTreeNode sort= new DefaultMutableTreeNode("食材分类");
DefaultMutableTreeNode vagetable = new DefaultMutableTreeNode("蔬菜类");
DefaultMutableTreeNode meat = new DefaultMutableTreeNode("肉类");
sort.add(vagetable );
sort.add(meat);
DefaultMutableTreeNode b = new DefaultMutableTreeNode("百香果");
DefaultMutableTreeNode jin = new DefaultMutableTreeNode("泰国金桔");
DefaultMutableTreeNode liulian = new DefaultMutableTreeNode("榴莲");
DefaultMutableTreeNode ytao = new DefaultMutableTreeNode("樱桃");
vagetable .add(b);
vagetable .add(jin);
vagetable .add(liulian);
vagetable .add(ytao);
DefaultMutableTreeNode c = new DefaultMutableTreeNode("牛肉");
meat.add(c);
JTree jt = new JTree(sort);
f.add(jt);
f.setSize(400, 400);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
public static void main(String[] args) {
new TreeDemo();
}
}
结果: