JTable中合并单元格.docx

上传人:b****7 文档编号:10902493 上传时间:2023-02-23 格式:DOCX 页数:13 大小:18.55KB
下载 相关 举报
JTable中合并单元格.docx_第1页
第1页 / 共13页
JTable中合并单元格.docx_第2页
第2页 / 共13页
JTable中合并单元格.docx_第3页
第3页 / 共13页
JTable中合并单元格.docx_第4页
第4页 / 共13页
JTable中合并单元格.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

JTable中合并单元格.docx

《JTable中合并单元格.docx》由会员分享,可在线阅读,更多相关《JTable中合并单元格.docx(13页珍藏版)》请在冰豆网上搜索。

JTable中合并单元格.docx

JTable中合并单元格

/*

*SimpleTableDemo.javaisa1.4applicationthatrequiresnootherfiles.

*/

//编辑的时候直接从覆盖原有内容

importjavax.swing.JFrame;

importjavax.swing.JPanel;

importjavax.swing.JScrollPane;

importjavax.swing.JTable;

importjava.awt.Dimension;

importjava.awt.GridLayout;

importjava.awt.event.MouseAdapter;

importjava.awt.event.MouseEvent;

importjava.util.*;

importjava.awt.event.*;

importjavax.swing.*;

importjavax.swing.table.*;

importjava.io.*;

importjava.util.*;

publicclassCombineextendsJPanel{

privatebooleanDEBUG=false;

JTabletable;

publicCombine(){

super(newGridLayout(1,0));

table=newJTable(newMyTableModel());

table.setPreferredScrollableViewportSize(newDimension(500,70));

///////////////////////////////////////////////////////////

table.setDefaultEditor(String.class,newSelEditor());

//Createthescrollpaneandaddthetabletoit.

JScrollPanescrollPane=newJScrollPane(table);

//Addthescrollpanetothispanel.

add(scrollPane);

}

/**

*CreatetheGUIandshowit.Forthreadsafety,

*thismethodshouldbeinvokedfromthe

*event-dispatchingthread.

*/

privatestaticvoidcreateAndShowGUI(){

//Makesurewehavenicewindowdecorations.

JFrame.setDefaultLookAndFeelDecorated(true);

//Createandsetupthewindow.

JFrameframe=newJFrame("MyCustomTable2");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//Createandsetupthecontentpane.

CombinenewContentPane=newCombine();

newContentPane.setOpaque(true);//contentpanesmustbeopaque

frame.setContentPane(newContentPane);

//Displaythewindow.

frame.pack();

frame.setVisible(true);

try

{

Thread.sleep(1000);

}

catch(InterruptedExceptione)

{

e.printStackTrace();

}

((MyTableModel)newContentPane.table.getModel()).combineRow("FirstName","LastName");

}

publicstaticvoidmain(String[]args){

//Scheduleajobfortheevent-dispatchingthread:

//creatingandshowingthisapplication´sGUI.

javax.swing.SwingUtilities.invokeLater(newRunnable(){

publicvoidrun(){

createAndShowGUI();

}

});

}

classMyTableModelextendsAbstractTableModel{

privateString[]columnNames={"FirstName",

"LastName",

"Sport",

"#ofYears",

"Vegetarian"};

privateListcList=newArrayList();

{

for(inti=0;i

cList.add(columnNames[i]);

}

privateObject[][]data={

{"Mary","Campione",

"Snowboarding",newInteger(5),newBoolean(false)},

{"Alison","Huml",

"Rowing",newInteger(3),newBoolean(true)},

{"Kathy","Walrath",

"Knitting",newInteger

(2),newBoolean(false)},

{"Sharon","Zakhour",

"Speedreading",newInteger(20),newBoolean(true)},

{"Philip","Milne",

"Pool",newInteger(10),newBoolean(false)}

};

privateListdList=newArrayList();

{

for(inti=0;i

Listtmp=newArrayList();

for(intj=0;j

tmp.add(data[i][j]);

}

dList.add(tmp);

}

}

publicintgetColumnCount(){

returncList.size();

}

publicintgetRowCount(){

returndList.size();

}

publicStringgetColumnName(intcol){

return(String)cList.get(col);

}

publicObjectgetValueAt(introw,intcol){

return((List)dList.get(row)).get(col);

}

publicvoidcombineRow(Stringr1,Stringr2){

intindex1=cList.indexOf(r1);

intindex2=cList.indexOf(r2);

cList.set(index1,r1+r2);

cList.remove(r2);

for(inti=0;i

Listlist=(List)dList.get(i);

list.set(index1,list.get(index1).toString()+list.get(index2));

list.remove(index2);

}

fireTableStructureChanged();

}

/*

*JTableusesthismethodtodeterminethedefaultrenderer/

*editorforeachcell.Ifwedidn´timplementthismethod,

*thenthelastcolumnwouldcontaintext("true"/"false"),

*ratherthanacheckbox.

*/

publicClassgetColumnClass(intc){

returncList.get(c).getClass();

}

publicbooleanisCellEditable(introw,intcol){

//Notethatthedata/celladdressisconstant,

//nomatterwherethecellappearsonscreen.

returntrue;

}

publicvoidsetValueAt(Objectvalue,introw,intcol){

((List)dList.get(row)).set(col,value);

fireTableCellUpdated(row,col);

}

privatevoidprintDebugData(){

intnumRows=getRowCount();

intnumCols=getColumnCount();

for(inti=0;i

System.out.print("row"+i+":

");

for(intj=0;j

System.out.print(""+((List)dList.get(i)).get(j));

}

System.out.println();

}

System.out.println("--------------------------");

}

}

}

请仔细看MyTableModel的实现

第二个:

/*(swing1.1beta3)*/

packagetame.examples;

importjava.awt.event.WindowAdapter;

importjava.awt.event.WindowEvent;

importjava.awt.*;

importjavax.swing.*;

importjavax.swing.table.*;

importtame.table.ColumnGroup;

importtame.table.GroupableTableHeader;

importtame.table.GroupableTableHeaderUI;

/**

*|-----------------------------------------------------|

*|       |      Name     |        Language        |

*|       |-----------------|--------------------------|

*| SNo. |       |       |       |     Others    |

*|       |  1   |   2  |Native|-----------------|

*|       |       |       |       |  2   |  3   |

*|-----------------------------------------------------|

*|       |       |       |       |       |       |

@authorNobuoTamemasa

@version1.011/09/98

*/

publicclassGroupableHeaderExampleextendsJFrame{

   GroupableHeaderExample(){

     super("GroupableHeaderExample");

     DefaultTableModeldm=newDefaultTableModel();

     dm.setDataVector(newObject[][]{

       {"119","foo","bar","ja","ko","zh"},

       {"911","bar","foo","en","fr","pt"}},

     newObject[]{"SNo.","1","2","Native","2","3"});

     JTabletable=newJTable(dm){

protectedJTableHeadercreateDefaultTableHeader(){

           returnnewGroupableTableHeader(columnModel);

       }

     };

     TableColumnModelcm=table.getColumnModel(); //得到列模型,可以取出表头

     ColumnGroupg_name=newColumnGroup("Name");

     g_name.add(cm.getColumn

(1));

     g_name.add(cm.getColumn

(2));

     ColumnGroupg_lang=newColumnGroup("Language");

     g_lang.add(cm.getColumn(3));

     ColumnGroupg_other=newColumnGroup("Others");

     g_other.add(cm.getColumn(4));

     g_other.add(cm.getColumn(5));

     g_lang.add(g_other);

     GroupableTableHeaderheader=(GroupableTableHeader)table.getTableHeader();

     header.addColumnGroup(g_name);

     header.addColumnGroup(g_lang);

     TableCellRendererrenderer= newDefaultTableCellRenderer(){

         publicComponentgetTableCellRendererComponent(JTabletable,Objectvalue,

                          booleanisSelected,booleanhasFocus,introw,intcolumn){

           JTableHeaderheader=table.getTableHeader();

           if(header!

=null){

             setForeground(header.getForeground());

             setBackground(header.getBackground());

             setFont(header.getFont());

           }

           setHorizontalAlignment(JLabel.CENTER);

           setText((value==null)?

"":

value.toString());

           setBorder(UIManager.getBorder("TableHeader.cellBorder"));

           returnthis;

         }

       };

     TableColumnModelmodel=table.getColumnModel();

     for(inti=0;i

       model.getColumn(i).setHeaderRenderer(renderer);

     }

       table.getTableHeader().setUI(newGroupableTableHeaderUI());

     JScrollPanescroll=newJScrollPane(table);

     getContentPane().add(scroll);

     setSize(400,120);

   }

   publicstaticvoidmain(String[]args){

     GroupableHeaderExampleframe=newGroupableHeaderExample();

     frame.addWindowListener(newWindowAdapter(){

       publicvoidwindowClosing(WindowEvente){

   System.exit(0);

       }

     });

     frame.setVisible(true);

   }

}

____________________________________________________________________________

publicclassGroupableHeaderExampleextendsJFrame{

 GroupableHeaderExample(){

   super("GroupableHeaderExample");

   DefaultTableModeldm=newDefaultTableModel();

   dm.setDataVector(newObject[][]{

     {"119","foo","bar","ja","ko","zh"},

     {"911","bar","foo","en","fr","pt"}},

   newObject[]{"SNo.","1","2","Native","2","3"});

   JTabletable=newJTable(dm){

     protectedJTableHeadercreateDefaultTableHeader(){

 returnnewGroupableTableHeader(columnModel);

     }

   };

   TableColumnModelcm=table.getColumnModel();

   ColumnGroupg_name=newColumnGroup("Name");

   g_name.add(cm.getColumn

(1));

   g_name.add(cm.getColumn

(2));

   ColumnGroupg_lang=newColumnGroup("Language");

   g_lang.add(cm.getColumn(3));

   ColumnGroupg_other=newColumnGroup("Others");

   g_other.add(cm.getColumn(4));

   g_other.add(cm.getColumn(5));

   g_lang.add(g_other);

   GroupableTableHeaderheader=(GroupableTableHeader)table.getTableHeader();

   header.addColumnGroup(g_name);

   header.addColumnGroup(g_lang);

   TableCellRendererrenderer= newDefaultTableCellRenderer(){

       publicComponentgetTableCellRendererComponent(JTabletable,Objectvalue,

                        booleanisSelected,booleanhasFocus,introw,intcolumn){

         JTableù[”^„v_RNý€Yù[PŸ

ÿÙ?

/f

`HN_NÞV‹N_ÿ

_ŸSàV:

N(WHQMR„vh_e_a_d_e_r_-Nò]Ï~_€Q†Ç?

m_a_r_g_i_n_„v˜†N

ÿ

Tb—Í‘Y/} R†Ndkm_a_r_g_i_n__0`OïSåNôf9eG_r_o_u_p_a_b_l_e_T_a_b_l_e_H_e_a_d_e_r_U_I_„vp_a_i_n_t_¹eÕl

ÿRd–());

         }

         setHorizontalAlignment(JLabel.CENTER);

         setText((value==null)?

"":

value.toString()

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1