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

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

结果:
这里写图片描述

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值