從制造到創(chuàng)造
          軟件工程師成長(zhǎng)之路
          posts - 292,  comments - 96,  trackbacks - 0
          需求:用實(shí)線把各個(gè)面板圈起來(lái),然后把面板的名字寫在圈圈的左上角。

          原始畫面:


          由于原來(lái)的程序使用的是AWT中的Panel,而這個(gè)控件我們沒(méi)有設(shè)置titleBorder的方法。
          現(xiàn)在將更新為Swing中的JPanel面板,代碼分別為:
          舊代碼:
              Panel pRoboCtrl=new Panel();
              pRoboCtrl.setLayout(
          new GridLayout(5125));
              
              
          // Robot控制面板的第一排,面板的標(biāo)題
                  Panel pR1=new Panel(); 
                  pR1.setLayout(
          new GridLayout(1123));
               
                  
          //Row One
              pR1.add(new Label("Robot Control",Label.CENTER));
          新代碼:
              JPanel pRoboCtrl=new JPanel();
              pRoboCtrl.setLayout(
          new GridLayout(4125));
              Border titleBorder1
          =BorderFactory.createTitledBorder("Robot Control");            
              pRoboCtrl.setBorder(titleBorder1);   
          原來(lái)的處理方式是將一個(gè)Label放到Panel中,然后將這個(gè)Panel放到外層的Panel中,新方式是將外層Panel定義成JPanel,然后設(shè)置Border的值為BorderFactory產(chǎn)生的一個(gè)實(shí)例。



          解決這個(gè)問(wèn)題后,新問(wèn)題又來(lái)了,兩個(gè)JPanel中的內(nèi)容不一樣,上面多,下面少,但是現(xiàn)在面板卻是一樣大,要改成面板高度自動(dòng)適應(yīng)。
          其實(shí)這只需要修改一行代碼就可以了,代碼如下:
          舊代碼:
          CP.setLayout(new GridLayout(3125));  
          新代碼:
          CP.setLayout(new BoxLayout(CP, BoxLayout.Y_AXIS)); // 沿垂直方向布置組件
          舊代碼的處理方式是網(wǎng)格布局,新代碼的方式是用BoxLayout布局管理器,它會(huì)按要求垂直或水平分布。

          以下代碼創(chuàng)建了一個(gè)JPanel容器,它采用垂直 BoxLayout,在這個(gè)容器中包含兩個(gè)Button,這兩個(gè)Button沿垂直方向分布,并且保持像素為 5 的固定垂直間隔。
              JPanel panel = new JPanel();
              panel.setLayout(
          new BoxLayout(panel, BoxLayout.Y_AXIS));// 沿垂直方向布置組件
              panel.add(new JButton("Button1"));
              panel.add(Box.createVerticalStrut(
          5));
              panel.add(
          new JButton("Button2"));

          源代碼:下載
          posted on 2008-04-29 16:16 CoderDream 閱讀(15620) 評(píng)論(2)  編輯  收藏 所屬分類: 經(jīng)驗(yàn)點(diǎn)滴 、學(xué)習(xí)筆記

          FeedBack:
          # re: Java中為面板(JPanel)添加標(biāo)題
          2008-07-09 23:12 | azack
          panel.setBorder(BorderFactory.createTitledBorder("標(biāo)題"));


          BorderFactory中的方法:
          static TitledBorder createTitledBorder(Border border)
          創(chuàng)建一個(gè)空標(biāo)題的新標(biāo)題邊框,使其具有指定的邊框?qū)ο?、默認(rèn)的文本位置(位于頂線上)、默認(rèn)的調(diào)整 (leading),以及默認(rèn)的字體和文本顏色(由當(dāng)前外觀確定)。

          static TitledBorder createTitledBorder(Border border, String title)
          向現(xiàn)有邊框添加一個(gè)標(biāo)題,使其具有默認(rèn)的位置(位于頂線上)、默認(rèn)的調(diào)整 (leading),以及默認(rèn)的字體和文本顏色(由當(dāng)前外觀確定)。

          static TitledBorder createTitledBorder(Border border, String title, int titleJustification, int titlePosition)
          向現(xiàn)有邊框添加一個(gè)標(biāo)題,使其具有指定的位置和默認(rèn)字體和文本顏色(由當(dāng)前外觀確定)。

          static TitledBorder createTitledBorder(Border border, String title, int titleJustification, int titlePosition, Font titleFont)
          向現(xiàn)有邊框添加一個(gè)標(biāo)題,使其具有指定的位置和默認(rèn)的文本顏色(由當(dāng)前外觀確定)。

          static TitledBorder createTitledBorder(Border border, String title, int titleJustification, int titlePosition, Font titleFont, Color titleColor)
          向現(xiàn)有邊框添加一個(gè)標(biāo)題,使其具有指定的位置、字體和顏色。
            回復(fù)  更多評(píng)論
            
          # 面板的嵌套
          2014-06-09 15:15 |

          <2008年4月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          常用鏈接

          留言簿(9)

          我參與的團(tuán)隊(duì)

          隨筆分類(245)

          隨筆檔案(239)

          文章分類(3)

          文章檔案(3)

          收藏夾(576)

          友情鏈接

          搜索

          •  

          積分與排名

          • 積分 - 458376
          • 排名 - 114

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 本溪市| 射阳县| 尤溪县| 江门市| 明溪县| 罗定市| 兴海县| 青浦区| 白沙| 大荔县| 九龙坡区| 永寿县| 佛冈县| 获嘉县| 梅河口市| 阜康市| 广州市| 仙游县| 五峰| 罗源县| 邻水| 英超| 临朐县| 绵竹市| 西城区| 鄂尔多斯市| 随州市| 鄯善县| 漳浦县| 遂平县| 平舆县| 保靖县| 日喀则市| 布尔津县| 舒兰市| 河津市| 南江县| 莱西市| 崇仁县| 林口县| 五台县|