首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

JTAble表头有关问题

2012-02-01 
JTAble表头问题我给表头设定了自定义的绘制器后,表头的网格线不见了?有什么办法可以显示吗?表头的绘制器用

JTAble表头问题
我给表头设定了自定义的绘制器后,表头的网格线不见了?有什么办法可以显示吗?
表头的绘制器用label.

还就是表头的行高怎么设置?

解决即给分


[解决办法]
setShowGrid(boolean showGrid) 
设置表是否绘制单元格周围的网格线。

setRowHeight(int row, int rowHeight) 
将 row 的高度设置为 rowHeight,重新验证并重新绘制它。

这两个...
[解决办法]
DefaultTableCellRenderer render = (DefaultTableCellRenderer) tbModules
.getTableHeader().getDefaultRenderer();
Dimension d = render.getSize();
d.height = 25;
render.setPreferredSize(d);

这是表头高的设置
[解决办法]
网格布局
一下是我在做图书管理系统是用的表格,可以参考一下:
final Object[] bb={"编号","条形码","名称","索书号","分类号","一级分类","二级分类","存放位置","出版社","作者","译者","数量"};//列标题
Object[][] rowData=new Object[32][12]; 
table=new JTable(rowData,bb); //实例化表格

JScrollPane pane = new JScrollPane (table); 
JPanel panel = new JPanel (new GridLayout (0, 1));//以矩形网格形式对容器的组件进行布置
panel.setPreferredSize (new Dimension (600,400));//设置panel首选大小
panel.setBackground (Color.black);

panel.add (pane);
panel.setBounds(0,200,880,300);
c.add(panel);
[解决办法]
网格线指的是什么?一条条的竖线吗?列的分隔线?
[解决办法]
http://www.zaoxue.com/article/tech-71429.htm
有个tableHeader,你查下API
[解决办法]
自定义绘制器

能不能把代码帖帖
[解决办法]
你重写了getTableCellRendererComponent方法吧?那么你只需要在这个方法最后加上
setBorder(UIManager.getBorder("TableHeader.cellBorder"));
就可以了.
[解决办法]
第一个问题已经解决了吧?没绘制border
第二个:可以设置prefferdSize

Java code
import java.awt.Component;import java.awt.Container;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.UIManager;import javax.swing.WindowConstants;import javax.swing.table.DefaultTableCellRenderer;public class Test extends JFrame {    public Test() {        Container contentPane = getContentPane();        contentPane.setLayout(new FlowLayout());        contentPane.add(new JTable(10, 10));        JTable t = new JTable(10, 10);        headerRender render = new headerRender();        t.getTableHeader().setDefaultRenderer(render);        t.getTableHeader().setPreferredSize(new Dimension(0, 50));        contentPane.add(new JScrollPane(t));    }    public static void main(String args[]) {        GraphicJavaWindowHandler.launch(new Test(), "Tables and Scrollpanes", 100, 100, 850, 700);    }}class GraphicJavaWindowHandler extends WindowAdapter {    public static void launch(final JFrame f,                              String title,                              final int x,                              final int y,                              final int w,                              int h) {        f.setTitle(title);        f.setBounds(x, y, w, h);        f.setVisible(true);        f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);        f.addWindowListener(new WindowAdapter() {            public void windowClosed(WindowEvent e) {                System.exit(0);            }        });    }}class headerRender extends DefaultTableCellRenderer {    public Component getTableCellRendererComponent(JTable table,                                                   Object value,                                                   boolean isSelected,                                                   boolean hasFocus,                                                   int row,                                                   int column) {        label.setText(value.toString());        label.setBorder(UIManager.getBorder("TableHeader.cellBorder"));        Dimension d = label.getSize();        d.height = 36;        label.setSize(d);        return label;    }    JLabel label = new JLabel();} 


[解决办法]
还有,你帖子发错区了吧?
这个算GUI设计里的

热点排行