java swing滚动面板_JAVA SWING自定义行列标题的滚动面板示例

该博客展示了如何在JAVA SWING中创建一个滚动面板,并使用JScrollPane的方法setColumnHeaderView和setRowHeaderView来设置自定义的行头和列头。通过GridBagLayout布局管理器,博主创建了一个包含20个单元格的面板,每个单元格都有自己的行列标题。这个示例有助于理解如何在SWING应用中实现复杂的滚动视图。
摘要由CSDN通过智能技术生成

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 colList = getLabelList(total);

List 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 getLabelList(int count) {

List list = new ArrayList();

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 阅读(347) 评论(0)  编辑  收藏 所属分类: java swing

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值