zoukankan      html  css  js  c++  java
  • java模仿qq好友面板的布局(BoxLayout问题)

            ..............
                  JLabel ll = new JLabel(dlg.getNameText() + ":" + dlg.getIPText(), ii[index], JLabel.LEFT);
                            tmp = new JPanel();//将标签添加到这个面板中
                            tmp.setLayout(new FlowLayout(FlowLayout.CENTER));
                            tmp.setBackground(new Color(255, 0, 255));
                            
                            /*
                             *  BoxLayout布局简直是蛋疼的要命,一个面板X是BoxLayout布局,如果该面板添加一个面板Y的话
                             *  那么Y就会填充X面板!如果在添加一个面板Z, 那么Y, Z就会一起布满X面板!但是可以设置Y,Z面板
                             *  的比例! 如果X添加的是一个按钮或者标签时,还不能控制其大小.....无语了!
                             *  
                             *  下面的我的做法将标签添加到面板tmp中,然后再将tmp添加中QQP面板中!这样就可以控制标签的大小了!
                             *  再添加新的面板的时候,要设置一下之前面板的PreferredSize!保证每一个标签的距离适中!
                             *  也就是保证所有的添加的面板的高度之和 == QQP.getHeight();
                             * */
                            int cnt = QQP.getComponentCount();//显示QQ好友的个数!
                            if(cnt >= 1)
                                QQP.getComponent(cnt-1).setPreferredSize(new Dimension(250, 60));//60代表默认的标签的高度
                            int h = QQP.getHeight() - cnt*60;
                            if(h < 0) h=60;//如果所有的高度之和超高了QQP面板的高度,那么直接就是默认的高度,剩下的显示就交给垂直滚动条了!
                            tmp.setPreferredSize(new Dimension(250, h));
                            tmp.add(ll);
                            QQP.add(tmp);
                            QQP.add(tmp);
             ............//效果图见下!

  • 相关阅读:
    pom.xml基础配置
    Maven零散笔记——配置Nexus
    搭建局域网maven仓库
    java 加密解密
    菠萝大象--sping
    (转)Spring对注解(Annotation)处理源码分析1——扫描和读取Bean定义
    eclipse 如何把java项目转成web项目
    Effective Java
    More Effective C++
    Effective C++
  • 原文地址:https://www.cnblogs.com/hujunzheng/p/3997486.html
Copyright © 2011-2022 走看看