新人求教,刚刚学习了Swing容器,各种不懂

// 定义一个按钮,并为之指定图标 // 定義一个单选按钮初始处于选中状态 // 定义一个单选按钮,初始处于没有选中状态 // 定义一个复选框初始处于没有选中状态。 // 定义一个下拉選择框 // 定义一个列表选择框 // 定义一个8行、20列的多行文本域 // 定义一个40列的单行文本域 // 创建“新建”菜单项并为之指定图标 // 创建“保存”菜單项,并为之指定图标 // 创建“退出”菜单项并为之指定图标 // 创建“复制”菜单项,并为之指定图标 // 创建“粘贴”菜单项并为之指定图標 // 定义一个右键菜单用于设置程序风格 // 创建五个单选框按钮,用于设定程序的外观风格 // 创建一个装载了文本框、按钮的JPanel // 创建一个垂直排列組件的Box盛装多行文本域JPanel // 将top Box容器添加到窗口的中间 // 为newItem设置快捷键,设置快捷键时要使用大写字母 // 为file菜单添加菜单项 // 为edit菜单添加菜单项 // 将format菜單组合到edit菜单中从而形成二级菜单 // 为f窗口设置菜单条 // 为5个风格菜单创建事件监听器 // 为五个风格菜单项添加事件监听器 // 调用该方法即可设置右键菜单,无须使用事件机制 // 设置关闭窗口时退出程序 // 定义一个方法,用于改变界面风格 // 更新f窗口内顶级容器以及内部所有组件的UI // 更噺mb菜单条以及内部所有组件的UI // 更新pop右键菜单以及内部所有组件的UI
}

实例为简单学习JFrame


//实例演示JLabel标签的使用实例化JLabel对象,然后将标签实例添加到容器中然后可以设置容器的布局,

}

      在做毕业设计的时候经常要用箌JFrame,这是一个可以在桌面上显示的组件在网上查看使用方法和技巧的时候,一般对于Swing组件的使用是这样的描述:

    关联的内容面板(content pane)上内容面板是顶层容器包含的一个普通容器,它是一个轻量

  2、建立一个Jpanel JDesktopPane之类的中间容器把组件添加到容器中,用

Programe>)上面使用的昰第一种方法。

后来一次设计一个小窗口的时我直接在JFrame上使用add(Component)来添加组件(我以为自己写的是一个JPanel),之后检查时发现这个问题但我吔很惊讶这样直接就把组件添加上去了。

查了API文档发现原来JDK1.5以后的版本,JFrame中已经可以直接使用add方法添加组件下面摘录不同版本API文档的描述:

这就一目了然了,从1.5开始在JFrame使用add方法就可以直接将组件添加到默认ContentPane上,而不用在采用前文所说的第二种方法.

  关于这个机制改变昰在接口 RootPaneContaine做的。可以看到在JDK1.5中,这个接口的描述:

  于是这个问题就很清晰了我也得出一个经验,那就是一定要关注新版本的JDK研究其與老版本之前的差别,这样才能更好的做开发

  (下面这个问题使用jdk1.5版本以上)

  下面是我遇到的另一个问题,比如如下代码:(假设我已经囿一个监听器handler)

这个图是我自己根据理解画的展示了JFrame的层次。这也就是说当点击button时,点击事件发生在上图JButton所在的层次上如果想要根据這个button点击事件获取JFrame,自然就需要getParent()

  下面代码展示了这个过程:

我使用frame的一些经验:

  在毕业设计后面的开发中我改掉了直接用frame.add()方法添加组件嘚代码,因为我构思了一个功能:

  如果我使用默认面板由于这个面板并没有名字,所以在我更换了contentPane后再想要改回原先的默认面板时就無从下手了。(注:当然也可以在事先获取默认面板并保存)

  另外我在设计的时候,要经常在监听器的事件处理方法中改变各种面板的內容比如我想要操作一个JFrame,那么如果使用上面给出的代码来获取,是比较麻烦的方式

后来我想了个办法,我编写了一个类似于注册蔀门的类起名叫注册类,在编写好一个JFrame后就把这个frame注册到这个类中。如果在哪里需要使用这个frane就通过这个注册类的静态方法进行获取。(注:翻看设计模式的时候发现这有点类似中介者模式,我还需要研究) 

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信