第十一周作业

实现代码如下:

package demo;

import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.KeyStroke;

public class GUITest {

    public static void main(String[] args){
        MyJFrame myJFrame = new MyJFrame();
        myJFrame.setTitle("浏览器");
        myJFrame.setBounds(100, 100, 750, 450);
        myJFrame.setVisible(true);
    }
}

class MyJFrame extends JFrame{
    JMenuBar menuBar;
    JMenu menuFile,menuEdit,menuLook,subMenuOpen,menuClear;
    JMenuItem menuItemSave,menuItemOpenX,menuItemOpenY,
    menuItemCopy,menuItemStop,menuItemRefresh;
    JTextArea showTextArea;//文本区域,用来显示多行文本

    StringBuffer str = new StringBuffer("");//定义一个可变字符串用来不断获取以及更改文本区域内容
    public MyJFrame() {
        /////////////创建菜单栏和一级菜单///////////////
        menuBar = new JMenuBar();
        menuFile = new JMenu("文件(F)");
        menuEdit = new JMenu("编辑(E)");
        menuLook = new JMenu("查看(L)");
        subMenuOpen = new JMenu("打开");
        menuClear = new JMenu("清空文本区域(D)");

        //////////////////创建菜单项/////////////////
        menuItemOpenX = new JMenuItem("打开X");
        menuItemOpenY = new JMenuItem("打开Y");
        menuItemSave = new JMenuItem("保存");
        menuItemCopy = new JMenuItem("复制");
        menuItemStop = new JMenuItem("停止");
        menuItemRefresh = new JMenuItem("刷新");

        ////////////////创建文本区域/////////////////
        /*
         * 这里15,30的话不需要滚动条,所以滚动条自动隐藏,看效果直接指定为150,500
         */
        showTextArea = new JTextArea(15,60);
        showTextArea.setText(str.toString());
        add(new JScrollPane(showTextArea));//将文本区域放入一个滚动布局中

        ////////////////设置快捷键//////////////////
        menuFile.setMnemonic('F');//文件(F)
        menuItemSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));//保存 Ctrl+S
        //subMenu不设置快捷键
        menuEdit.setMnemonic('E');//编辑(E)
        menuItemCopy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));//复制 Ctrl+C
        menuLook.setMnemonic('L');//查看(L)
        menuClear.setMnemonic('D');//清空文本区域(D)


        /////////////将菜单项设置到菜单中/////////////
        subMenuOpen.add(menuItemOpenX);
        subMenuOpen.add(menuItemOpenY);
        menuFile.add(menuItemSave);
        menuFile.add(subMenuOpen);
        menuEdit.add(menuItemCopy);
        menuLook.add(menuItemStop);
        menuLook.add(menuItemRefresh);

        ////////////将菜单设置到菜单栏///////////////
        menuBar.add(menuFile);
        menuBar.add(menuEdit);
        menuBar.add(menuLook);
        menuBar.add(menuClear);

        ////////////将菜单栏设置到窗口//////////////
        setJMenuBar(menuBar);


    }

}

运行结果:
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值