﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-JAVA</title><link>http://www.blogjava.net/caoyong/</link><description>JAVA开发</description><language>zh-cn</language><lastBuildDate>Wed, 06 May 2026 23:14:43 GMT</lastBuildDate><pubDate>Wed, 06 May 2026 23:14:43 GMT</pubDate><ttl>60</ttl><item><title>JAVA SWING自定义行列标题的滚动面板示例 </title><link>http://www.blogjava.net/caoyong/archive/2012/07/30/384370.html</link><dc:creator>caoyong</dc:creator><author>caoyong</author><pubDate>Mon, 30 Jul 2012 12:50:00 GMT</pubDate><guid>http://www.blogjava.net/caoyong/archive/2012/07/30/384370.html</guid><wfw:comment>http://www.blogjava.net/caoyong/comments/384370.html</wfw:comment><comments>http://www.blogjava.net/caoyong/archive/2012/07/30/384370.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/caoyong/comments/commentRss/384370.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/caoyong/services/trackbacks/384370.html</trackback:ping><description><![CDATA[<p>JScrollPane有以下两个方法 setColumnHeaderView(Component view) setRowHeaderView(Component view) 你可以利用它们, 一个用来显示表行头,一个用来显示列头</p>
<p>同例行标题也有.</p>
<p>package scrollpanel;</p>
<p>import java.awt.Dimension;<br />import java.awt.GridBagConstraints;<br />import java.awt.GridBagLayout;<br />import java.awt.Insets;<br />import java.util.ArrayList;<br />import java.util.List;</p>
<p>import javax.swing.BorderFactory;<br />import javax.swing.JDialog;<br />import javax.swing.JLabel;<br />import javax.swing.JPanel;<br />import javax.swing.JScrollPane;<br />import javax.swing.JViewport;</p>
<p>public class CustomScrollDlg extends JDialog {</p>
<p>&nbsp;private static final long serialVersionUID = 1L;<br />&nbsp;private final static int WIDTH = 100;<br />&nbsp;private final static int HIGHT = 30;</p>
<p>&nbsp;private JScrollPane jsp = new JScrollPane();<br />&nbsp;private JPanel jpnlColumn = new JPanel();<br />&nbsp;private JPanel jpnlRow = new JPanel();<br />&nbsp;private JPanel jpnlContent = new JPanel();<br />&nbsp;private Dimension dim = new Dimension(WIDTH, HIGHT);<br />&nbsp;private int total = 20;</p>
<p>&nbsp;public CustomScrollDlg() {<br />&nbsp;&nbsp;setTitle("JAVA SWING自定义行列标题的滚动面板示例");<br />&nbsp;&nbsp;setSize(600, 500);<br />&nbsp;&nbsp;setLocation(200, 100);<br />&nbsp;&nbsp;init();<br />&nbsp;}</p>
<p>&nbsp;private void init() {<br />&nbsp;&nbsp;jpnlContent.setLayout(new GridBagLayout());<br />&nbsp;&nbsp;jpnlColumn.setLayout(new GridBagLayout());<br />&nbsp;&nbsp;jpnlRow.setLayout(new GridBagLayout());</p>
<p>&nbsp;&nbsp;List&lt;JLabel&gt; colList = getLabelList(total);<br />&nbsp;&nbsp;List&lt;JLabel&gt; rowList = getLabelList(total);<br />&nbsp;&nbsp;JLabel lbl = null;<br />&nbsp;&nbsp;for (int i = 0; i &lt; total; i++) {<br />&nbsp;&nbsp;&nbsp;lbl = colList.get(i);<br />&nbsp;&nbsp;&nbsp;jpnlColumn.add(lbl, new GridBagConstraints(i, 0, 1, 1, 0, 0,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GridBagConstraints.EAST, GridBagConstraints.NONE,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new Insets(0, 0, 0, 0), 0, 0));</p>
<p>&nbsp;&nbsp;&nbsp;lbl = rowList.get(i);<br />&nbsp;&nbsp;&nbsp;jpnlRow.add(lbl, new GridBagConstraints(0, i, 1, 1, 0, 0,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GridBagConstraints.NORTH, GridBagConstraints.NONE,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new Insets(0, 0, 0, 0), 0, 0));<br />&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;jpnlContent.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));<br />&nbsp;&nbsp;jpnlContent<br />&nbsp;&nbsp;&nbsp;&nbsp;.setPreferredSize(new Dimension(WIDTH * total, HIGHT * total));<br />&nbsp;&nbsp;jsp.getViewport().add(jpnlContent);</p>
<p>&nbsp;&nbsp;JViewport colVP = new JViewport();<br />&nbsp;&nbsp;colVP.setView(jpnlColumn);<br />&nbsp;&nbsp;jsp.setColumnHeader(colVP);</p>
<p>&nbsp;&nbsp;JViewport rowVP = new JViewport();<br />&nbsp;&nbsp;rowVP.setView(jpnlRow);<br />&nbsp;&nbsp;jsp.setRowHeader(rowVP);</p>
<p>&nbsp;&nbsp;JLabel title = getLabel("Title");<br />&nbsp;&nbsp;jsp.setCorner(JScrollPane.UPPER_LEFT_CORNER, title);<br />&nbsp;&nbsp;jsp.setCorner(JScrollPane.LOWER_LEFT_CORNER, getLabel("****"));<br />&nbsp;&nbsp;jsp.setCorner(JScrollPane.UPPER_RIGHT_CORNER, getLabel("**"));</p>
<p>&nbsp;&nbsp;getContentPane().add(jsp);</p>
<p>&nbsp;}</p>
<p>&nbsp;private JLabel getLabel(String text) {<br />&nbsp;&nbsp;JLabel lbl = new JLabel(text);<br />&nbsp;&nbsp;lbl.setPreferredSize(dim);<br />&nbsp;&nbsp;lbl.setMaximumSize(dim);<br />&nbsp;&nbsp;lbl.setMinimumSize(dim);<br />&nbsp;&nbsp;lbl.setBorder(BorderFactory.createEtchedBorder());<br />&nbsp;&nbsp;return lbl;<br />&nbsp;}</p>
<p>&nbsp;private List&lt;JLabel&gt; getLabelList(int count) {<br />&nbsp;&nbsp;List&lt;JLabel&gt; list = new ArrayList&lt;JLabel&gt;();<br />&nbsp;&nbsp;for (int i = 0; i &lt; count; i++) {<br />&nbsp;&nbsp;&nbsp;list.add(getLabel(" JLabel" + i));<br />&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;return list;<br />&nbsp;}</p>
<p>&nbsp;public static void main(String[] args) {<br />&nbsp;&nbsp;new CustomScrollDlg().setVisible(true);<br />&nbsp;}</p>
<p>}<br /></p> <img src ="http://www.blogjava.net/caoyong/aggbug/384370.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/caoyong/" target="_blank">caoyong</a> 2012-07-30 20:50 <a href="http://www.blogjava.net/caoyong/archive/2012/07/30/384370.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>