Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

绿色网站无广告
会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux编程 > » 正文

Swing组件的另类嵌套

来源: 未知 分享至:

最近重温Swing,尝试了以前没试过的事情。大家可能都知道,J字头的组件(JComponent)都是awt.Container的子类,所以理论上所有的JComponent都可以当作容器来用,比如说JButton或者JMenuItem可以包含一个文本框。以前一直以为这只是概念上的,从来没有试过,如今尝试一下,发现真的可以,有图为证:

swing

图上的菜单中含有个文本框,最下面是个按钮,也有一个文本框,可以正常使用。需要注意的是菜单一定要显式指定大小,否则很可能看不到文本框:

JMenuItem weiredMenuItem = new JMenuItem();
JTextArea textArea = new JTextArea();
textArea.setPreferredSize(new Dimension(100, 30)); // 不是必须的
weirdMenuItem.setPreferredSize(new Dimension(100, 50)); // 关键,否则太小了看不到文本框
weirdMenuItem.setLayout(new FlowLayout());
weirdMenuItem.add(textArea);

个人认为,这种嵌套提供了无限的可能性(比如嵌套一个JPanel)。以前以为只有WPF能这样干,其实Swing也是如此灵活。JDK 7中添加了JLayer和对透明窗口(所谓Per-pixel alpha blending)的支持,对于编写酷炫界面又提供了极大的帮助,Swing真是宝刀不老,历久弥新。


Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史