欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    java-高级图形用户界面组.ppt

    • 资源ID:6509179       资源大小:530.50KB        全文页数:44页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    java-高级图形用户界面组.ppt

    Swing高级组件,NCEPU,Swing的高级组件,树JTree,表格JTable,NCEPU,Swing的高级组件表格,JTable(表格)的主要功能是把数据以二维表格的形式显示出来。,数据,标题,NCEPU,表格(JTable)的构造方法,NCEPU,Swing常用的组件表格(JTable),JTable类常用的方法有:getModel()/获得表格的数据来源对象JTable(TableModel dm)/dm对象中包含了表格要显示的数据,NCEPU,下列两个构造方法,第一个参数是数据,第二个参数是表格第一行中显示的内容JTable(objectrowData,objectcolumnNams);JTable(VectorrowData,VectorcolumnNams);,表格(JTable),NCEPU,简单表格,JTable(Object rowData,ObjectcolumnNames)以一个默认表格模型来构建一个表格参数:rowData表格中的单元格数据 columnNames列标题构建表格数据Object data=陈峰,男,new Integer(19),党员,田一飞,男,new Integer(18),团员,胡锦,女,new Integer(19),党员;构建表格的列标题String columnName=姓名,性别,年龄,政治面貌;,建立带滚动条的表格JTable table=new JTable(data,columnName);JScrollPane pane=new JScrollPane(table);,import javax.swing.*;import java.awt.event.*;class Table public static void main(String args)Object data=陈峰,男,new Integer(19),党员,田一飞,男,new Integer(18),团员,胡锦,女,new Integer(19),党员;String columnName=姓名,性别,年龄,政治面貌;JTable table=new JTable(data,columnName);table.setRowHeight(25);/设置行高JScrollPane pane=new JScrollPane(table);/添加滚动条JFrame f=new JFrame();f.setSize(300,200);f.add(pane);f.setVisible(true);,简单表格实例,NCEPU,表格JTable的数据模型,JTable只能显示数据,通常将数据的存储和处理任务委托给他的表格数据模型来处理。表格数据模型必须实现TableModel接口。AbstractTableModel类对TableModel接口中大部分方法提供了具体实现。如继承该类,需要对其中若干方法进行实现。DefaultTableModel类继承了AbstractTableModel类并且实现了AbstractTableModel类中没有实现的方法。因此可以使用DefaultTableModel类来处理表格。以上两个类包含在包中。,NCEPU,JTable的创建,生成一个TableModel类型的对象来表示数据。用TableModel创建JTable对象。在JTable中添加滚动条面板。,创建JTable表格可按四步进行:,从AbstractTableModel类中继承得到,getColumnCount,getRowCount,getValueAt和getColumnName方法必须重写,继承DefaultTableModel类或创建DefaultTableModel类的对象得到,NCEPU,DefaultTableModel类,import javax.swing.*;import java.awt.event.*;import javax.swing.table.*;class Table public static void main(String args)Object data=陈峰,男,new Integer(19),党员,/表格中数据田一飞,男,new Integer(18),团员,胡锦,女,new Integer(19),党员;String columnName=姓名,性别,年龄,政治面貌;/表格列标题DefaultTableModel tableModel=new DefaultTableModel(data,columnName);JTable table=new JTable(tableModel);/创建表格table.setRowHeight(25);/设置行高JScrollPane pane=new JScrollPane(table);/添加滚动条JFrame f=new JFrame();f.setSize(300,200);f.add(pane);f.setVisible(true);,应用DefaultTableModel创建表格,NCEPU,AbstractTableModel类,import javax.swing.*;import java.awt.event.*;import javax.swing.table.*;class TableModel extends AbstractTableModel/数据模型类Object data=陈峰,男,new Integer(19),党员,田一飞,男,new Integer(18),团员,胡锦,女,new Integer(19),党员;String columnName=姓名,性别,年龄,政治面貌;public int getColumnCount()/获得列数 return columnName.length;public int getRowCount()/获得行数 return data.length;public Object getValueAt(int row,int col)/获得某单元格 return datarowcol;public String getColumnName(int col)/获得某列列标题 return columnNamecol;,继承AbstractTableModel类创建表格,NCEPU,class TableDemopublic static void main(String args)TableModel tm=new TableModel();JTable table=new JTable(tm);table.setRowHeight(25);/设置行高JScrollPane pane=new JScrollPane(table);/添加滚动条JFrame f=new JFrame();f.setSize(300,200);f.add(pane);f.setVisible(true);,继承AbstractTableModel类创建表格,续上页,NCEPU,无法编辑单元格解决方法1)覆盖AbstractTableModel抽象类中的isCellEditable()方法,设置允许编辑单元格。public boolean isCellEditable(int rowIndex,int columnIndex)return true;2)覆盖AbstractTableModel抽象类中的setValueAt()方法,将改过的值存入表格中。public void setValueAt(Object value,int row,int col)datarowcol=value;fireTableCellUpdated(row,col);,继承AbstractTableModel类创建表格的问题,继承AbstractTableModel类创建可编辑的表格,import javax.swing.*;import java.awt.event.*;import javax.swing.table.*;import java.awt.*;class TableModel extends AbstractTableModel/表格模型类Object data=陈峰,男,new Integer(19),党员,田飞,男,new Integer(18),团员,胡锦,女,new Integer(19),党员;String columnName=姓名,性别,年龄,政治面貌;public int getColumnCount()return columnName.length;public int getRowCount()return data.length;public Object getValueAt(int row,int col)return datarowcol;public String getColumnName(int col)return columnNamecol;public boolean isCellEditable(int rowIndex,int columnIndex)return true;public void setValueAt(Object value,int row,int col)datarowcol=value;fireTableCellUpdated(row,col);,class TableDemo implements ActionListener/表格类JTable table;JButton b;TableModel tm;TableDemo()tm=new TableModel();table=new JTable(tm);table.setRowHeight(25);/设置行高JScrollPane pane=new JScrollPane(table);/添加滚动条JFrame f=new JFrame();f.setSize(300,200);f.add(pane);f.setVisible(true);b=new JButton(“显示”);/用于显示数据的更新情况f.add(b,BorderLayout.SOUTH);b.addActionListener(this);,public void actionPerformed(ActionEvent e)/当改变表格中的数据时,data数组的数据同步改变for(int i=0;itm.getRowCount();i+)for(int j=0;jtm.getColumnCount();j+)System.out.printf(%-20s,tm.dataij);System.out.println();public static void main(String args)new TableDemo();,续上页,NCEPU,JTable的选择模式,选中表格的某行可以引发ListSelectionEvent事件。在事件处理之前,应通过setSelectionMode()方法设置选中模式。static int SINGLE_SELECTION(默认值)static int SINGLE_INTERVAL_SELECTION static int MULTIPLE_INTERVAL_SELECTION 分别可让用户作单一选择,连续区间选择与多重选择.当用户作后面两个模式的操作时,应配合Shift键或Ctrl键。,import javax.swing.*;import java.awt.event.*;import javax.swing.table.*;class table public static void main(String args)Object data=陈峰,男,new Integer(19),党员,田一飞,男,new Integer(18),团员,胡锦,女,new Integer(19),党员;String columnName=姓名,性别,年龄,政治面貌;DefaultTableModel tableModel=new DefaultTableModel(data,columnName);JTable table=new JTable(tableModel);/设置行选中模式 table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);JScrollPane pane=new JScrollPane(table);JFrame f=new JFrame();f.setSize(300,200);f.add(pane);f.setVisible(true);,设置表格的行选中模式1,import javax.swing.*;import java.awt.event.*;import javax.swing.table.*;class table public static void main(String args)Object data=陈峰,男,new Integer(19),党员,田一飞,男,new Integer(18),团员,胡锦,女,new Integer(19),党员;String columnName=姓名,性别,年龄,政治面貌;DefaultTableModel tableModel=new DefaultTableModel(data,columnName);JTable table=new JTable(tableModel);/取得table的ListSelectionModelListSelectionModel selectionMode=table.getSelectionModel();/设置行选中模式selectionMode.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);JScrollPane pane=new JScrollPane(table);JFrame f=new JFrame();f.setSize(300,200);f.add(pane);f.setVisible(true);,设置表格的行选中模式2,NCEPU,将JTable中的数据显示在JTextField等组件中,int trow=jTable.getSelectedRow();String id=(String)dtm.getValueAt(trow,0);String name=(String)dtm.getValueAt(trow,1);String sex=(String)dtm.getValueAt(trow,2);String age=(String)dtm.getValueAt(trow,3);jTextFieldId.setText(id);jTextFieldName.setText(name);jTextFieldAge.setText(age);jComboBox.setSelectedItem(sex);,NCEPU,行选中事件ListSelectionEvent,选中表格的某行可以引发ListSelectionEvent事件。要处理行选中事件,需实现ListSelectionListener接口ListSelectionListener接口中只有一个方法 void valueChanged(ListSelectionEvente)每当选择值发生更改时调用。,NCEPU,表格的基本操作,增加一行 删除一行 增加一列 删除一列,NCEPU,树的概念,树状结构是由很多节点组成的。每个节点既可以是树叶,也可以是子节点。每个节点(根节点除外)只有一个父节点。一个树状结构只有一个根节点。有时你可能拥有一个树的集合,每个树都有它自己的根节点。这种集合称为树林,父节点,节点,根,树叶,子节点,树,树林,NCEPU,程序中使用的树状结构,NCEPU,树JTree,创建一棵树结构的一般步骤为:创建根节点。DefaultMutableTreeNode treeRoot=new DefaultMutableTreeNode();创建根节点下级各个层次的子结点。DefaultMutableTreeNode subNode=new DefaultMutableTreeNode();,NCEPU,树JTree,用add()方法将各类子节点添加到其父节点中去,节点添加的顺序就是将来显示给用户的顺序。parentNode.add(subNode);将根节点的所有子结点顺次添加到根节点中去。treeRoot.add(subNode);用根节点做参数,调用JTree类的构造方法生成树结构对象。JTree treeObject=new JTree(treeRoot);,import javax.swing.*;import javax.swing.tree.*;import javax.swing.event.*;class TreeDemo extends JFrame implements TreeSelectionListenerJTree tree;public TreeDemo()setTitle(JTree Demo);/生成树型结构 DefaultMutableTreeNode top=new DefaultMutableTreeNode(中国历史文化名城);createNodes(top);tree=new JTree(top);,private void createNodes(DefaultMutableTreeNode top)DefaultMutableTreeNode node1=new DefaultMutableTreeNode(北京);DefaultMutableTreeNode node2=new DefaultMutableTreeNode(南京);DefaultMutableTreeNode node3=new DefaultMutableTreeNode(曲阜);top.add(node1);top.add(node2);top.add(node3);DefaultMutableTreeNode leaf=new DefaultMutableTreeNode(长城);node1.add(leaf);leaf=new DefaultMutableTreeNode(故宫);node1.add(leaf);leaf=new DefaultMutableTreeNode(颐和园);node1.add(leaf);leaf=new DefaultMutableTreeNode(“长江大桥);node2.add(leaf);leaf=new DefaultMutableTreeNode(“中山陵);node2.add(leaf);leaf=new DefaultMutableTreeNode(“夫子庙);node2.add(leaf);leaf=new DefaultMutableTreeNode(孔府);node3.add(leaf);leaf=new DefaultMutableTreeNode(孔庙);node3.add(leaf);leaf=new DefaultMutableTreeNode(孔林);node3.add(leaf);,/设置树的选中方式 tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);/设置树形结构父节点和叶子结点的图标 DefaultTreeCellRenderer renderer=new DefaultTreeCellRenderer();renderer.setClosedIcon(new ImageIcon(01.gif);renderer.setLeafIcon(new ImageIcon(02.gif);tree.setCellRenderer(renderer);/注册监听器 tree.addTreeSelectionListener(this);/把树放到带滚动条的面板上 JScrollPane treeView=new JScrollPane(tree);add(treeView);this.setSize(300,250);setVisible(true);,public static void main(String args)new TreeDemo();/实现树形结构监听器中的方法 public void valueChanged(TreeSelectionEvent e)DefaultMutableTreeNode node=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();if(node=null)return;,NCEPU,树JTree,【例】用JTree组件展示图所示的树型结构的信息。,树JTree,树状结构中所有的构成元素都用结点(Node)来表示。处于不同层次的结点之间具有父子或祖先与后代的关系。处于整个层次结构最顶端的结点称为根结点,每棵树的根结点只能有一个。当一个结点不再有子结点时,称之为终端结点或叶子结点(Leaf Node)。,利用树结点创建树结构的步骤,创建根结点 DefaultMutableTreeNode treeRoot=new DefaultMutableTreeNode();创建根结点下级各个层次的子结点 DefaultMutableTreeNode subNode=new DefaultMutableTreeNode();用add()方法将各类子结点添加到其父结点中去,结点添加的顺序就是将来显示给用户的顺序 parentNode.add(subNode);将根结点的所有子结点顺次添加到根结点中去。treeRoot.add(subNode);用根结点做参数,调用JTree类的构造方法生成树结构对象。JTree treeObject=new JTree(treeRoot);将树加到滚动窗格,将滚动窗格加到容器中。,树JTree,用JTree组件展示图所示的树型结构的信息。,import java.awt.*;import javax.swing.*;import javax.swing.tree.*;class TreeDemo public TreeDemo()JFrame f=new JFrame(TreeDemo);Container contentPane=f.getContentPane();/创建根结点 DefaultMutableTreeNode root=new DefaultMutableTreeNode(“资源管理器”);/创建子结点 DefaultMutableTreeNode node1=new DefaultMutableTreeNode(我的公文包);DefaultMutableTreeNode node2=new DefaultMutableTreeNode(我的电脑);DefaultMutableTreeNode node3=new DefaultMutableTreeNode(收藏夹);DefaultMutableTreeNode node4=new DefaultMutableTreeNode(Readme);root.add(node1);/装配结点 root.add(node2);root.add(node3);root.add(node4);,DefaultMutableTreeNode leafnode=new DefaultMutableTreeNode(公司文件);node1.add(leafnode);leafnode=new DefaultMutableTreeNode(私人文件);node1.add(leafnode);leafnode=new DefaultMutableTreeNode(本机磁盘(C:);node2.add(leafnode);leafnode=new DefaultMutableTreeNode(本机磁盘(D:);node2.add(leafnode);leafnode=new DefaultMutableTreeNode(本机磁盘(E:);node2.add(leafnode);DefaultMutableTreeNode node31=new DefaultMutableTreeNode(网站列表);node3.add(node31);leafnode=new DefaultMutableTreeNode(奇摩站);node31.add(leafnode);leafnode=new DefaultMutableTreeNode(职棒消息);node31.add(leafnode);leafnode=new DefaultMutableTreeNode(网络书店);node31.add(leafnode);,续上页,JTree tree=new JTree(root);JScrollPane scrollPane=new JScrollPane(tree);contentPane.add(scrollPane);f.pack();f.setVisible(true);public static void main(String args)new TreeDemo();,续上页,使用JTree类的getSelectionPath方法获得一个TreePath对象。通过调用这个对象的getLastPathComponent方法,可以找到树中当前选定的结点。TreePath selectionPath=tree.getSelectionPath();DefaultMutableTreeNode selectedNode=(DefaultMutableTreeNode)selectionPath.getLastPathComponent();更简洁的形式:DefaultMutableTreeNode selectedNode=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();,树路径TreePath,监听树的TreeSelectionEvent,在JTree上点选任何结点,都会触发TreeSelectionEvent事件。通过调用tree.getLastSelectedPathComponent方法,获取当前选中结点。要处理树的选择事件,必须实现TreeSelectionListener接口。该接口中只有一个方法:void valueChanged(TreeSelectionEvent event);每当用户选定或者撤销选定树的结点时,就要调用它。将监听器添加给树:tree.addTreeSelectionListener(listener);,树选择事件实例,单击某结点后,在右侧显示该结点名称及树路径,事件处理代码,class TreeDemo implements TreeSelectionListener public TreeDemo()public void valueChanged(TreeSelectionEvent e)/当选中某结点时,显示该结点的路径信息 TreePath selectionPath=tree.getSelectionPath();l1.setText(selectionPath.toString();/当选中某结点时,显示该结点信息 DefaultMutableTreeNode selectedNode=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();l2.setText(selectedNode.toString();public static void main(String args)new TreeDemo();,作业,当点击左侧窗格中的某班级结点时,在右侧将显示此班级的学生信息表格。,

    注意事项

    本文(java-高级图形用户界面组.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开