使用AbstractTableModel构建Table在表格中添加JButton按钮,之前在网上找了2天没有找到好用的程序,最终终于找到一个好用的例子。
不要使,我退你们分。
。
singtheSwingJTableclasscanquicklybecomeastickybusinesswhenyouwanttocustomizeittoyourspecificneeds.FirstyoumustbecomefamiliarwithhowtheJTableclassisorganized.IndividualcellsarerenderedbyTableCellRendererimplementations.ThetablecontentsarerepresentedbyanimplementationoftheTableModelinterface.Bydefault,JTableusesDefaultTableCellRenderertodrawitscells.DefaultTableCellRendererrecognizesafewprimitivetypes,renderingthemasstrings,andcanevendisplayBooleantypesascheckboxes.ButitdefaultstodisplayingthevaluereturnedbytoString()fortypesitdoesnotspecificallyhandle.YouhavetoprovideyourownTableCellRendererimplementationifyouwanttodisplaybuttonsinaJTable.TheTableCellRendererinterfacecontainsonlyonemethod,getTableCellRendererComponent(...),whichreturnsajava.awt.Componentthatknowshowtodrawthecontentsofaspecificcell.Usually,getTableCellRendererComponent()willreturnthesamecomponentforeverycellofacolumn,toavoidtheunnecessaryuseofextramemory.Butwhenthecontentsofacellisitselfacomponent,itisallrighttoreturnthatcomponentastherenderer.Therefore,thefirststeptowardshavingJButtonsdisplaycorrectlyinaJTableistocreateaTableCellRendererimplementationthatreturnstheJButtoncontainedinthecellbeingrendered.Intheaccompanyingcodelisting,JTableButtonRendererdemonstrateshowtodothis.EvenaftercreatingacustomTableCellRenderer,you'restillnotdone.TheTableModelassociatedwithagivenJTabledoesnotonlykeeptrackofthecontentsofeachcell,butitalsokeepstrackoftheclassofdatastoredineachcolumn.DefaultTableModelisdesignedtoworkwithDefaultTableCellRendererandwillreturnjava.lang.String.classforcolumnscontainingdatatypesthatitdoesnotspecificallyhandle.Theexact
1