Java Swing中菜单栏、弹出式菜单、树形控件的使用

来源:互联网 发布:java工厂设计模式原理 编辑:程序博客网 时间:2024/05/22 10:24

参考文档: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();    }}

结果:
这里写图片描述

原创粉丝点击