当前位置:  技术问答>java相关

各位老大,谁知道如何更改JTable的表格头的高度。

    来源: 互联网  发布时间:2015-01-30

    本文导语:  | 表格头的绘制和表格的绘制一样,都要通过绘制器去实现! import javax.swing.*; import javax.swing.border.*; import javax.swing.table.*; import java.awt.*; import java.awt.event.*; import java.util.*; public class Test extends JFrame { String ...


|
表格头的绘制和表格的绘制一样,都要通过绘制器去实现!
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class Test extends JFrame {
String longTitle = "Last Name / Maiden Name (if divorced)";
MultilineHeaderRenderer multilineRenderer = 
new MultilineHeaderRenderer(longTitle);

JTable table = new JTable(
new Object[][] {
{ "Lynn", "M.", "Seckinger" },
{ "Carol", "R.", "Seckinger" },
{ "Roy", "D.", "Martin" },
{ "Richard", "A.", "Tattersall" },
{ "Philip", "B.", "Edwards" },
{ "Moore", "T.", "Moore" },

// shorten scrollbar grip with these ...

{ "Lynn", "M.", "Seckinger" },
{ "Carol", "R.", "Seckinger" },
{ "Roy", "D.", "Martin" },
{ "Richard", "A.", "Tattersall" },
{ "Philip", "B.", "Edwards" },
{ "Moore", "T.", "Moore" },
},
new Object[] {"First Name", "MI", longTitle});

public Test() {
TableColumn middleColumn = table.getColumn("MI"),
lastColumn = table.getColumn(longTitle);

lastColumn.setHeaderRenderer(multilineRenderer);

TableCellRenderer hdrRenderer = 
middleColumn.getHeaderRenderer();

Component hdrComponent = 
hdrRenderer.getTableCellRendererComponent(table, 
"MI", false, false, 0, 0);

if(hdrComponent instanceof JComponent) {
JComponent c = (JComponent)hdrComponent;
c.setToolTipText("Middle Initial");
}

table.getTableHeader().setToolTipText("Table Header!");

getContentPane().add(
     new JScrollPane(table), BorderLayout.CENTER);
}
public static void main(String args[]) {
GJApp.launch(new Test(), 
"Multi-Line Column Headers",300,300,300,250);
}
}
class MultilineHeaderRenderer implements TableCellRenderer {
MultilineHeader mll;
JScrollPane scrollPane;

public MultilineHeaderRenderer(String title) {
mll = new MultilineHeader(title);
scrollPane = new JScrollPane(mll);

scrollPane.setHorizontalScrollBarPolicy(
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

scrollPane.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_NEVER);

scrollPane.setBorder(null);
}
public Component getTableCellRendererComponent(JTable table, 
Object value,
boolean isSelected,
boolean hasFocus,
int row, int col) {
mll.setText((String)value);
return scrollPane;
}
}
class MultilineHeader extends JTextArea {
public MultilineHeader(String s) {
super(s);
}
public void updateUI() {
super.updateUI();

// turn on wrapping and disable editing and highlighting

setLineWrap(true);
setWrapStyleWord(true);
setHighlighter(null);
setEditable(false);

// make the text area look like a table header

LookAndFeel.installColorsAndFont(this,
"TableHeader.background",
"TableHeader.foreground",
"TableHeader.font");

LookAndFeel.installBorder(this, "TableHeader.cellBorder");
}
}
class GJApp extends WindowAdapter {
static private JPanel statusArea = new JPanel();
static private JLabel status = new JLabel(" ");
static private ResourceBundle resources;

public static void launch(final JFrame f, String title,
  final int x, final int y, 
  final int w, int h) {
launch(f,title,x,y,w,h,null);
}
public static void launch(final JFrame f, String title,
  final int x, final int y, 
  final int w, int h,
  String propertiesFilename) {
f.setTitle(title);
f.setBounds(x,y,w,h);
f.setVisible(true);

statusArea.setBorder(BorderFactory.createEtchedBorder());
statusArea.setLayout(new FlowLayout(FlowLayout.LEFT,0,0));
statusArea.add(status);
status.setHorizontalAlignment(JLabel.LEFT);

f.setDefaultCloseOperation(
WindowConstants.DISPOSE_ON_CLOSE);

if(propertiesFilename != null) {
resources = ResourceBundle.getBundle(
propertiesFilename, Locale.getDefault());
}

f.addWindowListener(new WindowAdapter() {
public void windowClosed(WindowEvent e) {
System.exit(0);
}
});
}
static public JPanel getStatusArea() {
return statusArea;
}
static public void showStatus(String s) {
status.setText(s);
}
static Object getResource(String key) {
if(resources != null) {
return resources.getString(key);
}
return null;
}
}

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 各位老大,小弟初入linux行业,遇到以下问题,请各位老大解答之~
  • 一个老大男的一个老大难
  • 哪位老大给个linux的交流Q群号啊……
  • 各位老大们,在jbuilder6.0中怎么设置
  • 关于JavaBean 和 Tag 的问题?在线等待,谢谢各位老大的帮忙!!
  • 各位老大,请教一个问题,十万火急!!!
  • java相关 iis7站长之家
  • 那位老大用C++做unix系统编程啊?谈一下经验
  • 哪位老大有redhat enterprise 3的下载地址?小弟愿奉献100分!!
  • 哪位老大介绍一下linux漏洞的书?
  • 一个虚拟机的问题,哪位老大解答一下?
  • 各位老大,都晒晒您在linux上用的是什么影音播放器?支持图形界面吗?
  • 关于JavaBean 和标签库Tag的问题???在线等待谢谢各位老大的帮助!来者有分!!
  • 急!!!!!! 哪位老大能帮忙找找 getCustomDatum 的替代方法。
  • 各位老大救救我吧,再搞不定我今晚就要通霄了呜呜。。。
  • 各位老大,哪儿有linux最新版下载
  • 各老大:有没有图像放大或压缩算法?或思路?
  • 请各位老大帮帮忙!!!
  • 哪位老大装lids成功过?
  • 各位老大,如何更好的控制JButton,只有21分,都给了


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3