JAVA

          JAVA開發

          JAVA SWING自定義行列標題的滾動面板示例

          JScrollPane有以下兩個方法 setColumnHeaderView(Component view) setRowHeaderView(Component view) 你可以利用它們, 一個用來顯示表行頭,一個用來顯示列頭

          同例行標題也有.

          package scrollpanel;

          import java.awt.Dimension;
          import java.awt.GridBagConstraints;
          import java.awt.GridBagLayout;
          import java.awt.Insets;
          import java.util.ArrayList;
          import java.util.List;

          import javax.swing.BorderFactory;
          import javax.swing.JDialog;
          import javax.swing.JLabel;
          import javax.swing.JPanel;
          import javax.swing.JScrollPane;
          import javax.swing.JViewport;

          public class CustomScrollDlg extends JDialog {

           private static final long serialVersionUID = 1L;
           private final static int WIDTH = 100;
           private final static int HIGHT = 30;

           private JScrollPane jsp = new JScrollPane();
           private JPanel jpnlColumn = new JPanel();
           private JPanel jpnlRow = new JPanel();
           private JPanel jpnlContent = new JPanel();
           private Dimension dim = new Dimension(WIDTH, HIGHT);
           private int total = 20;

           public CustomScrollDlg() {
            setTitle("JAVA SWING自定義行列標題的滾動面板示例");
            setSize(600, 500);
            setLocation(200, 100);
            init();
           }

           private void init() {
            jpnlContent.setLayout(new GridBagLayout());
            jpnlColumn.setLayout(new GridBagLayout());
            jpnlRow.setLayout(new GridBagLayout());

            List<JLabel> colList = getLabelList(total);
            List<JLabel> rowList = getLabelList(total);
            JLabel lbl = null;
            for (int i = 0; i < total; i++) {
             lbl = colList.get(i);
             jpnlColumn.add(lbl, new GridBagConstraints(i, 0, 1, 1, 0, 0,
               GridBagConstraints.EAST, GridBagConstraints.NONE,
               new Insets(0, 0, 0, 0), 0, 0));

             lbl = rowList.get(i);
             jpnlRow.add(lbl, new GridBagConstraints(0, i, 1, 1, 0, 0,
               GridBagConstraints.NORTH, GridBagConstraints.NONE,
               new Insets(0, 0, 0, 0), 0, 0));
            }

            jpnlContent.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
            jpnlContent
              .setPreferredSize(new Dimension(WIDTH * total, HIGHT * total));
            jsp.getViewport().add(jpnlContent);

            JViewport colVP = new JViewport();
            colVP.setView(jpnlColumn);
            jsp.setColumnHeader(colVP);

            JViewport rowVP = new JViewport();
            rowVP.setView(jpnlRow);
            jsp.setRowHeader(rowVP);

            JLabel title = getLabel("Title");
            jsp.setCorner(JScrollPane.UPPER_LEFT_CORNER, title);
            jsp.setCorner(JScrollPane.LOWER_LEFT_CORNER, getLabel("****"));
            jsp.setCorner(JScrollPane.UPPER_RIGHT_CORNER, getLabel("**"));

            getContentPane().add(jsp);

           }

           private JLabel getLabel(String text) {
            JLabel lbl = new JLabel(text);
            lbl.setPreferredSize(dim);
            lbl.setMaximumSize(dim);
            lbl.setMinimumSize(dim);
            lbl.setBorder(BorderFactory.createEtchedBorder());
            return lbl;
           }

           private List<JLabel> getLabelList(int count) {
            List<JLabel> list = new ArrayList<JLabel>();
            for (int i = 0; i < count; i++) {
             list.add(getLabel(" JLabel" + i));
            }

            return list;
           }

           public static void main(String[] args) {
            new CustomScrollDlg().setVisible(true);
           }

          }

          posted on 2012-07-30 20:50 caoyong 閱讀(466) 評論(0)  編輯  收藏 所屬分類: java swing


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 开封市| 延长县| 贵定县| 丹凤县| 南陵县| 泾川县| 台安县| 湛江市| 彭阳县| 河西区| 兖州市| 广安市| 甘泉县| 宾阳县| 电白县| 浠水县| 宁国市| 河间市| 视频| 昂仁县| 百色市| 新宁县| 阿尔山市| 华坪县| 海林市| 安宁市| 健康| 丹江口市| 阿克| 青岛市| 若羌县| 洪洞县| 寻乌县| 石阡县| 乌恰县| 威宁| 高平市| 黄冈市| 恩施市| 乐昌市| 民县|