ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:307.85KB ,
资源ID:4779823      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4779823.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验4 JTable和JTree.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

实验4 JTable和JTree.docx

1、实验4 JTable和JTree实验4 JTable和JTree一、实验名称和性质所属课程Java语言程序设计实验名称JTable和JTree实验学时2实验性质验证 综合设计必做/选做必做 选做二、实验目的1.学会使用 JTable 显示和处理表格;2.学会使用 JTree 在树形层次结构中显示数据 。三、实验内容1编写表格处理程序(验证性内容)。2编写树形组件演示程序(验证性内容)。3.(用表格显示文本文件的数据)假设一个名为名为Table.txt的表格存储在文本文件中。文件的第一行是表头。其余的行与表格中的行相对应。元素之间用逗号隔开。编写一个程序,用JTable组件显示表格(设计性内容)

2、。4.(创建显示书中章节目录的书)创建一棵树,显示一本书的目录结构。选定书中的一个结点时,显示描述该结点的一段文字(设计性内容)。四、实验的软硬件环境要求硬件环境要求:PC计算机;内存512MB以上使用的软件名称、版本号以及模块:操作系统:Win 7或Windows XP软件:JDK 7.0;Eclipse五、知识准备前期要求掌握的知识: 掌握常用组件的使用方法。实验相关理论或原理:JTable 是一个Swing组件,它在一个二维网格的行和列中显示数据。 JTable 将数据存储和处理的任务委托给它的数据模型。表格数据模型必须实现表格模型TableModel接口,该接口定义了许多方法,这些方法

3、可以注册表格模型监听器、管理单元格以及获得行数、列数等。表格模型管理表格数据。通过TableModel能够添加和删除行,也能添加一列,但是不能通过TableModel删除列。 为了从JTable中删除列,必须使用表格列模型。JTableHeader 是一个管理JTable表头的GUI组件。创建一个JTable对象时,自动的创建一个JTableHeader的实例。默认情况下,拖动列首能够重新排列列的顺序。当表格中的数据发生变化时,表格模型会触发 TableModelEvent事件。当添加、删除或移动列或表格的选择模型发生变化时,表格列模型会触发 TableColumnModelEvent事件。当

4、选择发生变化时,表格选择模型会触发 ListSelectionEvent 事件。JTree 是一个Swing组件,它用树形层次结构来显示数据。当 JTree 显示一棵树时,树的表示是由 TreeModel, TreeNode和TreePath处理的。 TreeModel 代表整棵树, TreeNode 代表一个结点, TreePath 代表到结点的路径。 与 ListModel 或 TableModel不同, TreeMode 不直接存储或管理树的数据,树的数据是在 TreeNode 和 TreePath中存储和管理的。JTree 可以引发选择事件 TreeSelectionEvent 和 展

5、开事件TreeExpansionEvent。只要选择一个新结点,就会引起TreeSelectionEvent事件。只要展开或折叠一个结点,就会引起TreeExpansionEvent事件。TreeSelectionListener 包含一个处理器 valueChanged。TreeExpansionListener 接口 treeCollapsed and treeExpanded 2个处理器六、验证性与设计性实验1编写如图13.1所示表格处理程序。图13.1 表格参考代码import java.awt.*;import javax.swing.*;public class TestTable

6、 extends JApplet / Create table column names String columnNames = 班级名称, 所属学院, 学号, 姓名; / Create table data Object data = 计科081, 数信学院, 200853225101, 李小勇, 计科081, 数信学院, 200853225102, 张可立, 计科081, 数信学院, 200853225103, 王红, 计科081, 数信学院, 200853225104, 李勇, 计科081, 数信学院, 200853225105, 张立, 计科081, 数信学院, 2008532251

7、06, 黄晓, 计科081, 数信学院, 200853225107, 王明, ; / Create a table JTable jTable1 = new JTable(data,columnNames) ; /创建表格 public TestTable() getContentPane().add(new JScrollPane(jTable1); /Main method public static void main(String args) TestTable applet = new TestTable(); JFrame frame = new JFrame(); /EXIT_O

8、N_CLOSE = 3 frame.setDefaultCloseOperation(3); frame.setTitle(学生信息); frame.getContentPane().add(applet, BorderLayout.CENTER); applet.init(); applet.start(); frame.setSize(400,220); Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); frame.setLocation(d.width - frame.getSize().width) / 2, (d.h

9、eight - frame.getSize().height) / 2); frame.setVisible(true); 2. 利用表格控件的模型,实现添加行、删除行、添加列和删除列。程序运行结果如图13.2所示。package ch36;import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import javax.swing.table.Defaul

10、tTableModel;import javax.swing.table.TableColumnModel;public class SimpleTableDemo extends JFrame private JTextField jtf1 = new JTextField(6); private JTextField jtf2 = new JTextField(6); private JTextField jtf3 = new JTextField(6); private JTextField jtf4 = new JTextField(6); private JButton jbt1 =

11、 new JButton(add row); private JButton jbt2 = new JButton(delete row); private JButton jbt3 = new JButton(add column); private JButton jbt4 = new JButton(delete column); DefaultTableModel model; JTable jtable; String name1,id1; int score1; boolean pass1; public SimpleTableDemo() Objectdata = zhang,0

12、01,60,true,wang,002,80,true,zhao,003,59,false; StringcolumnNames = name,ID,score,pass; final DefaultTableModel model = new DefaultTableModel(data,columnNames); final JTable jtable = new JTable(model); add(new JScrollPane(jtable),BorderLayout.CENTER); JPanel p1 = new JPanel(); p1.add(jbt1); p1.add(jb

13、t2); p1.add(jbt3); p1.add(jbt4); JPanel p2 = new JPanel(); p2.add(new JLabel(name:); p2.add(jtf1); p2.add(new JLabel(id:); p2.add(jtf2); p2.add(new JLabel(score:); p2.add(jtf3); p2.add(new JLabel(pase:); p2.add(jtf4); JPanel p3 = new JPanel(); p3.setLayout(new BorderLayout(); p3.add(p1,BorderLayout.

14、NORTH); p3.add(p2,BorderLayout.CENTER); add(p3,BorderLayout.SOUTH); jbt1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) name1 = jtf1.getText(); id1 = jtf2.getText(); score1 = Integer.parseInt(jtf3.getText(); pass1 = Boolean.valueOf(jtf4.getText().booleanValue(); Ob

15、ject object1 = new Objectname1,id1,score1,pass1; if(jtable.getSelectedRow() = 0) model.insertRow(jtable.getSelectedRow(), object1); else model.addRow(object1); ); jbt2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) if(jtable.getSelectedRow() = 0) model.removeRow(jt

16、able.getSelectedRow(); else JOptionPane.showMessageDialog(null, Please select a row!); ); jbt3.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String name = JOptionPane.showInputDialog(New Column Name); model.addColumn(name,new Object); ); jbt4.addActionListener(new

17、 ActionListener() public void actionPerformed(ActionEvent e) if(jtable.getSelectedColumn() = 0 ) TableColumnModel columnModel = jtable.getColumnModel(); TableColumn tableColum = columnModel.getColumn(jtable.getSelectedColumn(); columnModel.removeColumn(tableColum); else JOptionPane.showMessageDialog

18、(null, Please select a column!); ); public static void main(String args) SimpleTableDemo f=new SimpleTableDemo(); f.setTitle(SimpleTableDemo); f.setSize(700,500); f.setVisible(true); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setLocationRelativeTo(null); 图13.23.分别创建三棵树,一棵为对象数组创建的树,一颗为由向量创建的

19、树,还有一棵由散列表创建的树.同时允许用户动态的设置属性rootVisible、rowHeight和ShowRootHandles结果如图13.3所示. 图13.3 树参考代码import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.util.*;public class SimpleTreeDemo extends JApplet / Create a default tree / Create a tree with an array of Ob

20、jects. private JTree jTree1 = new JTree(new String 狗, 牛, 猫, 猪, 兔); / Create a tree with a Hashtable private Vector vector = new Vector(Arrays.asList( new Object红, 绿, 黑, 白, 紫); private JTree jTree2 = new JTree(vector); private Hashtable hashtable = new Hashtable(); private JTree jTree3; / Create a co

21、mbo box for selecting rootVisible private JComboBox jcboRootVisible = new JComboBox( new Stringfalse, true); / Create a combo box for selecting showRootHandles private JComboBox jcboShowsRootHandles = new JComboBox( new String false, true); / Create a spinner for selecting row height private JSpinne

22、r jSpinnerRowHeight = new JSpinner( new SpinnerNumberModel(16, 1, 50, 1); public SimpleTreeDemo() jTree1.setRootVisible(false); hashtable.put(new Integer(1), red); hashtable.put(new Integer(2), green); hashtable.put(new Integer(3), blue); hashtable.put(new Integer(4), yellow); jTree3 = new JTree(has

23、htable); JPanel panel1 = new JPanel(); panel1.setLayout(new GridLayout(1,4) ); panel1.add(new JScrollPane(jTree1); panel1.add( new JScrollPane(jTree1) ); panel1.add(new JScrollPane(jTree3); JPanel panel2 = new JPanel(); panel2.add(new JLabel(rootVisible); panel2.add(jcboRootVisible); panel2.add(new

24、JLabel(rowHeight); panel2.add(jSpinnerRowHeight); panel2.add(new JLabel(showsRootHandles); panel2.add(jcboShowsRootHandles); getContentPane().add(panel1, BorderLayout.CENTER); getContentPane().add(panel2, BorderLayout.SOUTH); / Register listeners jcboRootVisible.addActionListener(new ActionListener(

25、) public void actionPerformed(ActionEvent e) boolean rootVisible = jcboRootVisible.getSelectedItem().equals(true); jTree1.setRootVisible(rootVisible); jTree2.setRootVisible(rootVisible); jTree3.setRootVisible(rootVisible); ); jcboShowsRootHandles.addActionListener(new ActionListener() public void ac

26、tionPerformed(ActionEvent e) boolean showsRootHandles = jcboShowsRootHandles.getSelectedItem().equals(true); jTree1.setShowsRootHandles(showsRootHandles); jTree2.setShowsRootHandles(showsRootHandles); jTree3.setShowsRootHandles(showsRootHandles); ); jSpinnerRowHeight.addChangeListener(new ChangeList

27、ener() public void stateChanged(ChangeEvent e) int height = (Integer)(jSpinnerRowHeight.getValue().intValue(); jTree1.setRowHeight(height); jTree2.setRowHeight(height); jTree3.setRowHeight(height); ); public static void main(String args) SimpleTreeDemo applet = new SimpleTreeDemo(); JFrame frame = n

28、ew JFrame(); /EXIT_ON_CLOSE = 3 frame.setDefaultCloseOperation(3); frame.setTitle(SimpleTreeDemo); frame.getContentPane().add(applet, BorderLayout.CENTER); applet.init(); applet.start(); frame.setSize(400,320); Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); frame.setLocation(d.width - fr

29、ame.getSize().width) / 2, (d.height - frame.getSize().height) / 2); frame.setVisible(true); 4.(1)(用表格显示文本文件的数据)假设一个名为名为Table.txt的表格存储在文本文件中。文件的第一行是表头。其余的行与表格中的行相对应。元素之间用逗号隔开。编写一个程序,用JTable组件显示表格。例如下面的文本文件中显示在表格中,则如下图所示。班级名称, 所属学院, 学号, 姓名计科081, 数信学院, 200853225101, 李小勇,计科081, 数信学院, 200853225102, 张可立,计科081, 数信学院, 200853225103, 王红,计科081, 数信学院, 200853225104, 李勇,计科081, 数信学院, 200853225105, 张立,计科081, 数信学院, 200853225106, 黄晓,计科081, 数信学院, 200853225107, 王明,代码:package experimentFour;import java.io.BufferedInputStream;import java

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

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