zoukankan      html  css  js  c++  java
  • 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真是宝刀不老,历久弥新。

  • 相关阅读:
    django之上传
    djano的ORM操作
    Python中的分页管理
    MySQL作业
    socket操作
    python的os模块
    django-debug-toolbar的配置及使用
    logging模板及配置说明
    使用StrictRedis连接操作有序集合
    学习总结
  • 原文地址:https://www.cnblogs.com/leading/p/2258492.html
Copyright © 2011-2022 走看看