我们首先看看Jtable和JTree的基本概念和常用构造方法。
<强>一:表格(JTable):
强>
1。基本概念:
表格(JTable)是摇摆不定的新增加的组件,主要是为了将数据以表格的形式显示。给显示大块数据提供了简单的机制。
2。常用构造方法:
<强> * JTable(): 强>使用系统默认的模型创建一个JTable实例。
<强> * JTable (int, int numRows numColumns): >强创建一个使用DefaultTableModel指定行、列的空表格。
<强> * JTable对象(对象构成了rowData, [] [] [] [] columnNames): >强创建一个显示二维数据的表格。
可以直接使用表格列名数组和表格数据数组来创建表格。
<强> * JTable (TableModel dm): >强创建一个指定数据模式和默认字段模式的JTable实例。
通常用数据模型类的对象来保存数据,而表格模型是通过表格列名数组和表格数据数组来创建的。
<强>二:树(JTree): 强>
1。基本概念:
,树(JTree):将分层数据集显示为轮廓的控件。
2。常用构造方法:
<强> JTree(): >强返回带有示例模型的JTree。
<强> JTree(对象[]值):>强返回JTree,指定数组的每个元素作为不被显示的新根节点的子节点。
,//只有这个构造函数可以创建多个根结点
<强> JTree(对象[]值):>强返回JTree,指定数组的每个元素作为不被显示的新根节点的子节点。
<强> JTree (TreeNode根):>强返回JTree,指定的TreeNode作为其根,它显示根节点。
<强> JTree (TreeNode根,布尔asksAllowsChildren): >强返回JTree,指定的TreeNode作为其根,
它用指定的方式显示根节点,并确定节点是否为叶节点。(真设置为可添加子结点,再添加子结点)。
<强>示例代码:强>
包com.jTablehomework; 进口java.awt。*; 进口java.lang.reflect.Field; 进口java.util.LinkedHashMap; 进口并不知道; 进口java.util.Map; 进口java.util.Vector; 进口javax.swing。*; 进口com.dao.CRUDDAO; 进口com.entry.Login;/* * * * @author zzy * * 2016年12月1日下午1:52:29 */公开课JTableDemo延伸JFrame { 私人JScrollPane jsp; 私人JTable jt; 私人DefaultTableModel tableModel; 公共静态void main (String [] args) { 新JTableDemo (); } 公共JTableDemo () { init (); setSize (400、500); setLocationRelativeTo(空); setVisible(真正的); setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); } 私人空间init () { 容器con=getContentPane (); con.setLayout(新BorderLayout ()); createJTable (con); } 公共空间createJTable(容器con) { JLabel jl=new JLabel(“用户信息”); jl.setHorizontalAlignment (SwingConstants.CENTER); addData (); jt=new JTable (tableModel) { @Override 公共布尔isCellEditable (int, int列){ 返回错误; } }; System.out.println (jt.getName ());//用来获得鼠标点击位置的内容 特里。addMouseListener(新MouseAdapter () { 公共空间mouseClicked (MouseEvent e) { int selectRow=jt.getSelectedRow ();//System.out.println (selectRow);//int selectcow=jt.getSelectedColumn (); for (int i=0;我& lt;jt.getColumnCount ();我+ +){ System.out.print (jt.getColumnName(我)+“:”); System.out.print (jt。getValueAt (selectRow,我)+“\ t”); } System.out.println ();//System.out.println (selectcow);//System.out.println (tableModel.getValueAt (selectRow,//selectcow)); 向量v=tableModel.getDataVector (); } }); jt.setRowHeight(30);//设置表格的行高 jt.setSelectionForeground (Color.red);//设置选中的文字颜色 jsp=new JScrollPane (jt); jsp.setViewportView (jt); con.add (jl BorderLayout.NORTH); con.add (jsp、BorderLayout.CENTER); } 公共空间addData () { List列表=getData (); 字段[]字段=Login.class.getDeclaredFields ();/* * *设置标题 */对象columnNames[]=新对象(field.length); for (int i=0;我& lt;field.length;我+ +){ columnNames[我]=领域[我]. getname (); }/* * *填充内容 */构成了rowData[][]=新对象对象[list.size ()] []; for (int i=0;我& lt;list.size ();我+ +){ 登录l=list.get(我); 对象ob[]=新对象(field.length); for (int j=0;j & lt;field.length;j + +) { 场[j] .setAccessible(真正的); 尝试{ ob [j]=字段[j] . get(左); }捕捉(IllegalArgumentException e) { e.printStackTrace (); System.out.println(“底层字段不可访问”); }捕捉(IllegalAccessException e) { e.printStackTrace (); System.out.println(“对象不是声明字段的实例”); }//返回此对象上此字段的值 rowData[我]=ob; } } 构成了rowData, tableModel=new DefaultTableModel (columnNames); } 公共List Jtable和JTree的写法示例代码