• 设计一个特殊表格的JTable控件


    public class MutilHeadTable extends JTable {
    
    	public MutilHeadTable(TableModel tm) {
    		super(tm);
    		init();
    	}
    	
    	private void init(){
    		//为每个列添加自定义的RENDER.这个Api设计比较麻烦.
    		CustomizedHeaderRender r = new CustomizedHeaderRender();
    		for (int i=0; i< getModel().getColumnCount(); i++) {
    			 TableColumn column = getColumnModel().getColumn(i);
    			 column.setHeaderRenderer(new CustomizedHeaderRender());
    		}
    	}
    	private class CustomizedHeaderRender extends DefaultTableCellRenderer{
    		public Component getTableCellRendererComponent(JTable table,
    				Object value, boolean isSelected, boolean hasFocus, int row,
                    int column) {
    			 if(value!=null && value instanceof String){
    				 StringTokenizer t = new StringTokenizer((String)value,"/");
    				 StringBuffer bf = new StringBuffer();
    				 bf.append("<html>");
    				 while (t.hasMoreElements()){
    					 bf.append(t.nextElement());
    					 if(t.hasMoreElements()){
    						 bf.append("<br>");
    					 }else{
    						  bf.append("</html>");
    					 }
    				 }
    				 return new JLabel(bf.toString());
    			 }
    			 return this;
    		}
    	}
    	
    	public static void main(String[] args) {
    		JFrame frame = new JFrame("Leaders");
    		Container contentPane = frame.getContentPane();
    		String headers[] = {"Line1/line2/line3", "Country"};
    		String data[][] = {
    				{"Tony Blair", "England"},
    				{"Thabo Mbeki", "South Africa"},
    		};
    		TableModel model = new DefaultTableModel(data, headers);
    		MutilHeadTable table = new MutilHeadTable(model);
    		JScrollPane scrollPane = new JScrollPane (table);
    		contentPane.add(scrollPane, BorderLayout.CENTER);
    		frame.setSize(300, 100);
    		frame.setVisible(true);
    	}
    }
    

      效果图:

  • 相关阅读:
    字符编码
    数据类型
    流程控制之判断,while循环,for循环
    数据类型,与用户交互,格式化输出,基本运算符
    操作系统,编程语言分类,执行python两种方式,变量,内存管理,定义变量的三个特征
    计算机硬件基础-笔记
    20200714_31adb命令和monkey压力稳定性测试
    20200707_28POM
    20200705_27DDT与Yaml数据驱动
    20200702_26UnitTest套件与运行器
  • 原文地址:https://www.cnblogs.com/wwssgg/p/14364225.html
Copyright © 2020-2023  润新知