JAVA

          JAVA開發(fā)

          2012年7月30日 #

          JAVA SWING自定義行列標(biāo)題的滾動(dòng)面板示例

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

          同例行標(biāo)題也有.

          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自定義行列標(biāo)題的滾動(dòng)面板示例");
            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 @ 2012-07-30 20:50 caoyong 閱讀(466) | 評(píng)論 (0)編輯 收藏

          僅列出標(biāo)題  
          主站蜘蛛池模板: 邮箱| 平南县| 秦安县| 海宁市| 庄河市| 遂昌县| 邓州市| 尼勒克县| 宜昌市| 称多县| 南皮县| 邹城市| 安岳县| 息烽县| 大埔区| 廊坊市| 托克逊县| 大同县| 华安县| 通化市| 杭锦后旗| 乌兰浩特市| 开平市| 桐柏县| 高雄县| 简阳市| 普陀区| 沙湾县| 兴业县| 武清区| 沂南县| 涿鹿县| 绵竹市| 屯门区| 上饶县| 汕头市| 宁南县| 墨竹工卡县| 克山县| 南靖县| 宜章县|