快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

[JAVA]Panel 嵌入ScrollPane

  
不     为了将很多component放到一个带滚动条的窗口里,折腾了一天,有点无聊,不过动手能力但愿应该也在处理这种繁琐的细节问题中增强了:)
     ScrollPane中只能放入一个组件,它的setLayout()方式也是虚设,一用就出错。假如要让很多组件(component)放到带滚动条窗口中就只能将这些组件先放到一个Panel中,再把Panel嵌入ScrollPane,这里又有一个问题,假如Panel的Layout设为null那么滚动条将不会有用。我就是因为panel.setLayout(null)了而折腾了一天。最后我用setLayout(new GridLayout())才解决这个问题。以下是将Panel嵌入ScrollPane的代码(从我的程序里直接copy的基本没做修改):
    
   //这里初始化了四个组件数组 
   checkBox = new Checkbox[numOfItems];
    keyField = new JTextField[numOfItems];
    chField = new JTextField[numOfItems];
    enField = new JTextField[numOfItems];
    
    ScrollPane scrp = new ScrollPane();
    Panel panel = new Panel(new GridLayout(numOfItems,1));//将panel的Layout设为numOfItems行,每行1列。
       
    for(int i = 0;i < numOfItems;i++)
    {
     checkBox[i] = new Checkbox();
     keyField[i] = new JTextField(30);
     chField[i] = new JTextField(sp[i].str,30);
     enField[i] = new JTextField(30);
     
     Panel pnl = new Panel(new FlowLayout(FlowLayout.LEFT));
     pnl.add(checkBox[i]);
     pnl.add(keyField[i]);
     pnl.add(chField[i]);
     pnl.add(enField[i]);//将每一行的组件放入一个子panel中
     panel.add(pnl);//将子panel放入panel中
    }
    
    scrp.add(panel);//将panel嵌入ScrollPane
    myContainer.add(scrp);
    scrp.reshape(10,70,950,600);
    别看这个问题很小,却费了我一天工夫。写在这里但愿有用,也许哪天哪位兄弟姐妹会碰到和我同样的问题。还有java里面layout的问题很麻烦,不过懒得研究了,我对这个不是很感爱好,只要解决了当前的问题就OK了.



返回类别: 教程
上一教程: Swing之EventQueue简介
下一教程: Java Learning Path(三)过程篇

您可以阅读与"[JAVA]Panel 嵌入ScrollPane"相关的教程:
· Groovy MOP,实现传说中Java7.0的XML嵌入式语法
· GROOVY MOP,实现传说中JAVA7.0的XML嵌入式
· JAVA中两个字符串“EQUALS”和“==”的区别
· JAVA代码编写的一般性指导
· JAVA学习从入门到精通
    微笑服务 优质保证 索取样品