<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JAVA進行式
    讓我們把JAVA進行到底!
    posts - 13,comments - 21,trackbacks - 0

            工具欄ToolBar中可加入如JLabel、JPanel、JButton或JComboBox等很多可視化組件的對象,且默認為FlowLayout布局管理器,有時候因為編程的需要,我們要往里面插入很多個組件,如何顯示出完整的組件列表成了一個問題,而ToolBar的對象放在JScrollPane對象中是顯示不出來的,原因是它和JPanel一樣是沒有邊框的,我的解決辦法是,將要插入到工具欄的對象先放入集合中(如果全是相同類型的對象,放在數組中保存更好),再通過for循環依次加入到ToolBar對象中,在ToolBar外面設置一個按鈕,編寫響應該按鈕的點擊事件,當該按鈕被點擊一次時,通過數組下標(或集合索引)從ToolBar中remove()去掉一個組件,并調用revalidate()方法,讓緊跟其后的組件移上去,添補刪除后留下的空白,并把刪除的那個組件重新用add()方法追加到工具欄尾部,這樣循環刪除和添加,就實現了工具欄的滾動效果,由于工具欄的FlowLayout布局,使它在未設置時只能向一個方向添加組件,故我的這個工具欄的滾動效果是單向的。
            對于兩向滾動,我考慮在反向滾動前重新設置工具欄的布局管理器,以改變其添加組件的方向,從而達到雙向滾動的效果。具體能否實現,有待進一步編碼檢測。
            在這里我把單向滾動的源代碼記錄如下:

    /**DiaryEditToolBarPane類構建一個包含一個工具欄和一個控制滾動的按鈕 */

    public class DiaryEditToolBarPane extends JPanel implements ActionListener
    {
     JTextPane jTextPane;
     DiaryEditToolBar diaryEditToolBar;
     JPanel jPanelSouth = new JPanel();
     JButton jButtonUp = new JButton(ConstValue.IMG_UP);
     //JButton jButtonDn = new JButton(ConstValue.IMG_DN);
     
     public DiaryEditToolBarPane(JTextPane jTextPane)
     {
      this.jTextPane = jTextPane;
      diaryEditToolBar = new DiaryEditToolBar(this.jTextPane);
      
      jButtonUp.setMargin(new Insets(0,0,0,0));
      //jButtonDn.setMargin(new Insets(0,0,0,0));
      jButtonUp.setActionCommand("up");
      //jButtonDn.setActionCommand("down");
      //jPanelSouth.setLayout(new GridLayout(2,1));
      jPanelSouth.add(jButtonUp);
      //jPanelSouth.add(jButtonDn);
      
      this.setLayout(new BorderLayout());
      this.add(diaryEditToolBar,BorderLayout.CENTER);
      this.add(jPanelSouth, BorderLayout.SOUTH);
      
      jButtonUp.addActionListener(this);
      //jButtonDn.addActionListener(this);
     }
      
     public void setTextPane(JTextPane jTextPane)
     {
      this.jTextPane = jTextPane;
      diaryEditToolBar.setTextPane(this.jTextPane);
     }

     public void actionPerformed(ActionEvent e)
     {
      if(e.getActionCommand().equals("up"))
      {
       diaryEditToolBar.moveUp();
      }
      /*
      else if(e.getActionCommand().equals("down"))
      {
       diaryEditToolBar.moveDown(); 
      }*/
     }
    }

    /**定義一個具體實現工具欄組件布局與滾動的類DiaryEditToolBar  */

    public class DiaryEditToolBar extends JToolBar
    {
     /**用于保存工具按鈕的對象數組*/
     private BrimlessButton[] toolBarButton;
     /**工具按鈕增、刪索引值*/
     private static int index = 0;
     
      
     private void init()
     {
      this.setFloatable(false);
      BrimlessButton[] temp =
      {
       toolBarButtonSave,toolBarButtonSave,toolBarButtonCut,
       toolBarButtonCopy,toolBarButtonPaste,toolBarButtonFontStyle,
       toolBarButtonFontSize,toolBarButtonFontForeground,toolBarButtonBackground,
       toolBarButtonBold,toolBarButtonItalic,toolBarButtonUnderline,
       toolBarButtonFlusLeft,toolBarButtonCenter,toolBarButtonFlushRight,
       toolBarButtonUndo,toolBarButtonRedo,toolBarButtonIndentLeft,
       toolBarButtonIndentRight,toolBarButtonURL,toolBarButtonImage,
       toolBarButtonDateTime
      };
      toolBarButton = temp;
      
      for(int i=0; i<22; i++)
      {
       this.addElement(toolBarButton[i]);
      }

     }

     private void addElement(JButton jButton)
     {
      this.add(jButton);
     }
     
     private void delElement(JButton jButton)
     { 
      this.remove(jButton);
     }
     
     /**刪除工具欄開頭的工具按鈕,并將其添加到工具欄末尾,以實現工具欄向上滾動的效果*/
     public void moveUp()
     {
      delElement(toolBarButton[index]);
      this.revalidate();
      addElement(toolBarButton[index]);
      index = (++index)%22;
     }
     
     /**增加工具欄開頭的工具按鈕,以實現工具欄向下滾動的效果*/
     public void moveDown()
     {
      //addElement(toolBarButton[index]);
      //this.revalidate();
      //repaint();
     } 
    }

    posted on 2005-11-29 23:18 水秀清靈 閱讀(1185) 評論(0)  編輯  收藏 所屬分類: 學習筆記
    主站蜘蛛池模板: 国产精品国产亚洲区艳妇糸列短篇| 亚洲综合亚洲综合网成人| 一区二区三区免费视频网站| 最近2019中文字幕免费看最新| 亚洲中文字幕人成乱码| 无码永久免费AV网站| 亚洲无线码在线一区观看| 亚洲国产成人久久99精品| 成人免费观看一区二区| 亚洲人成77777在线观看网| 国产精品成人免费一区二区| 亚洲日本中文字幕天天更新| 日韩免费高清视频| 美美女高清毛片视频黄的一免费 | 日韩免费一区二区三区在线| 四虎影视在线永久免费观看| 另类专区另类专区亚洲| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 在线91精品亚洲网站精品成人| 国产成人免费A在线视频| 国产亚洲精品美女久久久久| 亚洲欧洲久久久精品| 91免费福利视频| 亚洲精品午夜久久久伊人| 妞干网在线免费观看| 国产综合成人亚洲区| 亚洲欧洲日产国码av系列天堂| 无码人妻AV免费一区二区三区| 亚洲人成激情在线播放| 国产免费卡一卡三卡乱码| 好久久免费视频高清| 精品久久亚洲中文无码| 亚洲国产专区一区| 久久99国产综合精品免费| 亚洲爆乳无码精品AAA片蜜桃| 免费无遮挡无码永久视频 | 亚洲欧洲自拍拍偷午夜色| 日韩在线a视频免费播放| 国内精品免费在线观看| 亚洲精华国产精华精华液网站| 色噜噜亚洲精品中文字幕|