| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 526 人关注过本帖
标题:jtable 列问题
只看楼主 加入收藏
xioun
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:68
专家分:309
注 册:2013-4-8
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:7 
jtable 列问题
需求:准备写一个jtable然后更改她的样式后续所有的table都继承这个jtable;
问题:展现出来的table无column列名称;
代码展现:
package gov.service.product.gfmis.ResultDialogModel;

import gov.
import gov.
import gov.service.product.gfmis.balance.ui.BalanceMainUI;
import gov.service.product.

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.WindowEvent;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.UIManager;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;

public class Test extends JTable{
   
    private static GeneralDAO dao = ComponentManager.generalDAO;
   

    public Test()
    {   
        JScrollPane jsp=new JScrollPane();
        jsp.setViewportView(this);
      
      table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        table.setRowHeight(20);
        table.setFont(new Font("微软儒雅",Font.PLAIN,14));
        
        int columnCount=table.getColumnModel().getColumnCount();
        System.out.println(columnCount);
        for(int i=0;i<columnCount;i++)
        {
            int width=table.getColumnModel().getColumn(i).getWidth();
            table.getColumnModel().getColumn(i).setPreferredWidth(width+20);
        }
        
        JTableHeader head=new JTableHeader();
        head.setFont(new Font("微软雅黑",Font.PLAIN,16));
        head.setPreferredSize(new Dimension(head.getWidth(),25));
         
        getModel();
    }
    protected void getModel() {
        ThreadGroup group = Thread.currentThread().getThreadGroup();// 获得当前线程所在线程组
        Thread[] threads = new Thread[group.activeCount()];// 使用数组保存活动状态的线程
        group.enumerate(threads);// 获得所有线程
        DefaultTableModel model = (DefaultTableModel) this.getModel(); // 获得表格模型
        model.setRowCount(0); // 清空表格模型中的数据
        model.setColumnIdentifiers(new Object[] { "线程ID", "线程名称", "优先级" }); // 定义表头
        for (Thread thread : threads) {// 增加行数据
            model.addRow(new Object[] { thread.getId(), thread.getName(), thread.getPriority() });
        }
        this.setModel(model);// 更新表格模型
    }
   
    public static void main(String[] args) {

        try {
            UIManager
                    .setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
        } catch (Throwable e) {
            e.printStackTrace();
        }

        EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                JFrame frame = new JFrame();
                frame.setBounds(100, 100, 800, 300);
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                JPanel content=new JPanel();
                content.add(new Test());
                frame.setContentPane(content);
                frame.setVisible(true);
                frame.setResizable(true);
            }
        });

    }

}

展现结果:见附件

搜索更多相关主题的帖子: import package 
2013-09-16 11:22
java小蚂蚁
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:上海
等 级:贵宾
威 望:18
帖 子:558
专家分:2186
注 册:2013-7-2
收藏
得分:5 
debug找到关键代码,这样不好弄啊,这里面还引用了其他类,这想运行还要自己写其他类啊,你找出问题点对应的代码试试

学海无涯#¥%……&*(
2013-09-16 11:42
java小蚂蚁
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:上海
等 级:贵宾
威 望:18
帖 子:558
专家分:2186
注 册:2013-7-2
收藏
得分:0 
int columnCount=table.getColumnModel().getColumnCount();
        System.out.println(columnCount);
这句代码,打印的值有吗

学海无涯#¥%……&*(
2013-09-16 11:42
zrqvery158
Rank: 2
等 级:论坛游民
帖 子:28
专家分:68
注 册:2013-8-23
收藏
得分:5 
好难啊
2013-09-16 11:49
xioun
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:68
专家分:309
注 册:2013-4-8
收藏
得分:0 
回复 3楼 java小蚂蚁
这个是有值的,我在setModel()之后在获取model循环打印columnName都是可以的。可是显示的时候就是没有

命若天定,我就破了这个天!
2013-09-16 13:44
java小蚂蚁
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:上海
等 级:贵宾
威 望:18
帖 子:558
专家分:2186
注 册:2013-7-2
收藏
得分:0 
回复 5楼 xioun
哪里有值的话,证明你设置成功了,显示的时候你调用get方法不会没有值啊,会不会是你调用的次序有问题,你的值,在哪设进去的,在哪显示的。你这里涉及多线程,你看下,是不是线程问题,调用次序

学海无涯#¥%……&*(
2013-09-16 14:06
java小蚂蚁
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:上海
等 级:贵宾
威 望:18
帖 子:558
专家分:2186
注 册:2013-7-2
收藏
得分:0 
说实话,这代码没怎么看懂,总觉得有些乱,你main函数里面就一句话,怎么显示表格啊,
而且代码不全,

学海无涯#¥%……&*(
2013-09-16 14:09
ren829
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:15
帖 子:255
专家分:1174
注 册:2006-3-11
收藏
得分:5 
线程组已经不推荐用了,现在都用线程池,线程组容易引发很多问题。
2013-09-17 11:19
快速回复:jtable 列问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018688 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved