java学习记录(2):JMenuBar

1.在用这个时候发现很多的组件都有J的前缀,例如Button和JButton,前者是awt包的,后者是swing包的,两者耳朵区别是:

AWT 是Abstract Window ToolKit (抽象窗口工具包)的缩写,这个工具包提供了一套与本地图形界面进行交互的接口。AWT 中的图形函数与操作系统所提供的图形函数之间有着一一对应的关系,我们把它称为peers。 也就是说,当我们利用 AWT 来构件图形用户界面的时候,我们实际上是在利用操作系统所提供的图形库。由于不同操作系统的图形库所提供的功能是不一样的,在一个平台上存在的功能在另外一个平台上则可能不存在。为了实现Java语言所宣称的"一次编译,到处运行"的概念,AWT 不得不通过牺牲功能来实现其平台无关性,也就是说,AWT 所提供的图形功能是各种通用型操作系统所提供的图形功能的交集。由于AWT 是依靠本地方法来实现其功能的,我们通常把AWT控件称为重量级控件。 

Swing 是在AWT的基础上构建的一套新的图形界面系统,它提供了AWT 所能够提供的所有功能,并且用纯粹的Java代码对AWT 的功能进行了大幅度的扩充。例如说并不是所有的操作系统都提供了对树形控件的支持, Swing 利用了AWT 中所提供的基本作图方法对树形控件进行模拟。由于 Swing 控件是用100%的Java代码来实现的,因此在一个平台上设计的树形控件可以在其他平台上使用。由于在Swing 中没有使用本地方法来实现图形功能,我们通常把Swing控件称为轻量级控件。 

AWT和Swing之间的基本区别:AWT 是基于本地方法的C/C++程序,其运行速度比较快;Swing是基于AWT 的Java程序,其运行速度比较慢。对于一个嵌入式应用来说,目标平台的硬件资源往往非常有限,而应用程序的运行速度又是项目中至关重要的因素。在这种矛盾的情况下,简单而高效的AWT 当然成了嵌入式Java的第一选择。而在普通的基于PC或者是工作站的标准Java应用中,硬件资源对应用程序所造成的限制往往不是项目中的关键因素,所以在标准版的Java中则提倡使用Swing, 也就是通过牺牲速度来实现应用程序的功能。 

2.菜单条(MenuBar)包含菜单(Menu),菜单包含菜单项(MenuItem等)

3.当菜单项被点击时需要响应事件,我们就可以写

restart.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                client.newGame(getf(),getc(),getd());
            }
        });

里面可以调用的方法应该是所在的类里面的方法。

4.继承产生耳朵MenuBar,Menu,MenuItem都是无法加入它们前者的。

5.当菜单非常复杂,而又不想都塞在主程序入口时候,可以新建一个类,里面有一个方法返回一个完整的你想要的菜单

class TicMenuBar
{
    public JMenuBar get()
    {
        return bar;
    }
    private JMenuBar bar;
}

java学习记录(2):JMenuBar,布布扣,bubuko.com

时间: 2024-08-02 07:01:23

java学习记录(2):JMenuBar的相关文章

java学习记录(4):ActionListener

1.ActionListener是处理被点击的事件的. 除了像之前每个元素都独立写一个listener之外,还可以统一用一个 s.setActionCommand("sec"); m.setActionCommand("min"); s.addActionListener(new SetHandler()); m.addActionListener(new SetHandler()); private final class SetHandler implement

java学习记录(1):layout

BorderLayout布局管理器:BorderLayout 也是一种非常简单的布局策略,它把容器内的空间简单地划分为:North,South,East,West和Center 5个区域,每加入一个组件都应该指明把这个组件加在哪个区域中.BorderLayout是顶层容器(Window,Frame, Dialog)的默认布局管理器. BorderLayout界面最多只能显示5个控件,若在一个区域中加上多个component,则只有最后加上的那个是可见的.加入控件的时候,可以指定加入的方位,默认的

Java学习记录第一章

学习Java第一章的记录,这一章主要记录的是Java的最基础部分的了解知识,了解Java的特性和开发环境还有Java语言的优缺点. 计算机语言的发展大概过程:机器语言--->汇编语言--->高级语言(面向过程的语言和面向对象的语言)总而言之就是从人类比较难识别的字符串向人类自然语言靠近使代码的可读性越来越高. Java的发展过程:1991年Sun公司为了抢占市场先机,成立了一个称为Green的项目小组,帕特里克.詹姆斯·高斯林.麦克·舍林丹和其他几个工程师一起组成的工作小组在加利福尼亚州门洛帕

0924 java学习记录

一 .常用网站 Java 教程 _ 菜鸟教程   http://www.runoob.com/java/java-tutorial.html 天码营——Java入门基础教程  https://course.tianmaying.com/java-basic+static-variable-and-method#0 二.视频 SSM项目整合课程基本介绍_精通SSM项目整合开发实战视频课程(共26课时)_在线培训教程_51CTO学院 http://edu.51cto.com/lesson/id-76

java 学习记录

在本周,我学习了一下java基础的一些相关知识,有Java的数据类型.变量与常量.运算符与表达式,以及选择语句知识的学习,最后还有循环语句的学习.在本周的学习过程中,遇到了许多问题.学习进度明显跟不上老师的节奏,思维逻辑转变较慢,接受新知识需要时间,明显落下了很多功课.我很努力,但就是对很多东西理解不了,这是让我很苦恼的一件事情.每天尝试着变换各种学习办法,但是效率不高,没有太多的转变.我想只有挤时间从头开始把每一个知识点重新多过几次试一下吧.

java学习记录转战博客园

之前开始学习时就在安卓巴士那边记录学习笔记,但是最近由于未知原因,安卓巴士不能发表文章了.又偶然得知博客园,所以以后在这里记录学习的一切. 之前的链接: http://www.apkbus.com/home.php?mod=space&uid=833059&do=blog&view=me&from=space

Java学习记录(补充八:Date类;Java流(Stream),文件(File)和IO)

Date类,Calendar类package Box1; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Random; //Date类 public class DateTest { public static void main(String[] args) { Date

java学习记录【day6】

今天把各种运算符学习了一遍,可以说是一头雾水,这里看来需要好好的总结消化一下才行. http://blog.sina.com.cn/s/blog_56d8ea900100y65b.html 负数的二进制表示方法 (2011-10-15 23:54:32) 转载▼ 分类: 理论.数据结构.设计模式 一:表示法:1.正数5的表示法假设有一个 int 类型的数,值为5,那么,我们知道它在计算机中表示为:00000000 00000000 00000000 000001015转换成二制是101,不过in

Java学习记录

Java入门 Java练习 Java数据类型及数据转换 类型: 转换: