版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章HappyChat用户聊天程序学习目的与要求:深刻理解聊天程序的分析和设计。熟练使用JMenuBar、JMenu和JMenuItem构造应用程序菜单熟练使用JPopupMenu构造应用程序弹出式菜单熟练使用JList或List、JTextArea构造改善应用程序界面熟练使用JToolBar构造应用程序工具栏熟练使用JTable改善输入和输出界面9.1HappyChat聊天程序分析9.2菜单的使用9.3JToolBar类9.4多行文本框的使用9.5列表框的使用9.6JTable类9.7聊天逻辑实现9.8本章小结9.9上机实训第9章HappyChat用户聊天程序9.1HappyChat聊天程序分析
界面分析表9.1HappyChat聊天界面组件程序逻辑分析HappyChat聊天程序主要包括五个方面的功能:聊天:默认情况下,用户所输入的聊天信息会发送到聊天室里的每一个人;如果用户选择了聊天对象,并选择了【私聊】复选框,就可以向指定用户发送聊天信息进行私人聊天,这种情况下发送的聊天信息除了指定用户以外,其它用户看不到该信息。聊天记录:用户可以在聊天过程点击【保存】按钮,将当前的聊天信息保存到文件,以后可以通过【查看聊天记录】查看历史聊天信息。清屏:用户可以在聊天过程中点击【清屏】按钮,可以将当前显示在屏幕上的聊天信息清除。时钟:用户可以在聊天过程中点击【时钟】按钮,聊天系统将以时钟形式显示当前时间。发送附件:用户可以点击【浏览】按钮选择附件或直接输入附件路径和文件名,再点击【发送】按钮发送所选择的附件给指定的用户
9.2菜单的使用JMenuBar类方法名方法功能JMenugetMenu(intindex)返回菜单栏中指定位置的菜单intgetMenuCount()返回菜单栏上的菜单数voidpaintBorder(Graphicsg)如果BorderPainted属性为true,则绘制菜单栏的边框voidsetBorderPainted(booleanb)设置是否应该绘制边框voidsetHelpMenu(JMenumenu)设置用户选择菜单栏中的“帮助”选项时显示的帮助菜单voidsetMargin(Insetsm)设置菜单栏的边框与其菜单之间的空白voidsetSelected(Componentsel)设置当前选择的组件,更改选择模型表9.2JMenuBar常用方法JMenu类菜单的该实现是一个包含JMenuItem的弹出窗口,用户选择JMenuBar上的项时会显示该JMenuItem。除JMenuItem之外,JMenu还可以包含JSeparator。菜单本质上是带有关联JPopupMenu的按钮。当按下“按钮”时,就会显示JPopupMenu。如果“按钮”位于JMenuBar上,则该菜单为顶层窗口。如果“按钮”是另一个菜单项,则JPopupMenu就是“右拉”菜单。JMenu的构造方法和常用方法如表9.3所示
方法名方法功能JMenu()构造没有文本的新JMenuJMenu(Actiona)构造一个从提供的Action获取其属性的菜单JMenu(Strings)构造一个新JMenu,用提供的字符串作为其文本JMenu(Strings,booleanb)构造一个新JMenu,用提供的字符串作为其文本并指定其是否为分离式(tear-off)菜单Voidadd()将组件或菜单项追加到此菜单的末尾voidaddMenuListener(MenuListenerl)添加菜单事件的侦听器voidaddSeparator()将新分隔符追加到菜单的末尾voiddoClick(intpressTime)以编程方式执行“单击”JMenuItemgetItem(intpos)返回指定位置的JMenuItemintgetItemCount()返回菜单上的项数,包括分隔符JMenuIteminsert(Actiona,intpos)在给定位置插入连接到指定Action对象的新菜单项JMenuIteminsert(JMenuItemmi,intpos)在给定位置插入指定的JMenuitemvoidinsert(Strings,intpos)在给定的位置插入一个具有指定文本的新菜单项voidinsertSeparator(intindex)在指定的位置插入分隔符booleanisSelected()如果菜单是当前选择的(即突出显示的)菜单,则返回truevoidremove()从此菜单移除组件或菜单项voidremoveAll()从此菜单移除所有菜单项voidsetDelay(intd)设置菜单的PopupMenu向上或向下弹出前建议的延迟voidsetMenuLocation(intx,inty)设置弹出组件的位置表9.3JMenu构造方法和常用方法JMenuItem类方法名方法功能JMenuItem()创建不带有设置文本或图标的JMenuItemJMenuItem(Actiona)创建一个从指定的Action获取其属性的菜单项JMenuItem(Iconicon)创建带有指定图标的JMenuItemJMenuItem(Stringtext)创建带有指定文本的JMenuItemJMenuItem(Stringtext,Iconicon)创建带有指定文本和图标的JMenuItemJMenuItem(Stringtext,intmnemonic)创建带有指定文本和键盘助记符的JMenuItembooleanisArmed()返回菜单项是否被“调出”voidsetArmed(booleanb)将菜单项标识为“调出”voidsetEnabled(booleanb)启用或禁用菜单项表9.4JMenuItem构造方法和常用方法菜单应用实例【例9-1】下拉式菜单应用//菜单应用演示程序importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassMenuDemoextendsJFrameimplementsActionListener{ JMenuBarmbMain; JMenumnuSystem,mnuHelp; JMenuItemmnuiCls,mnuiSave,mnuiClock,mnuiExit,mnuiContent,mnuiIndex,mnuiAbout; publicMenuDemo() { super("菜单应用演示"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); FontfntDisp1=newFont("宋体",Font.PLAIN,12); mbMain=newJMenuBar(); mnuSystem=newJMenu("系统(S)"); mnuHelp=newJMenu("帮助(H)"); mnuSystem.setMnemonic('S'); mnuHelp.setMnemonic(KeyEvent.VK_H); mbMain.add(mnuSystem); mbMain.add(mnuHelp); mnuiCls=newJMenuItem("清除屏幕显示"); mnuiSave=newJMenuItem("保存聊天记录"); mnuiClock=newJMenuItem("查看时间"); mnuiExit=newJMenuItem("退出系统"); mnuiExit.addActionListener(this); mnuSystem.add(mnuiCls); mnuSystem.add(mnuiSave); mnuSystem.add(mnuiClock); mnuSystem.add(mnuiExit); mnuSystem.setFont(fntDisp1); mnuHelp.setFont(fntDisp1); mnuiCls.setFont(fntDisp1); mnuiSave.setFont(fntDisp1); mnuiClock.setFont(fntDisp1); mnuiExit.setFont(fntDisp1); IconicnContent=newImageIcon("help.gif"); mnuiContent=newJMenuItem("目录",icnContent); mnuiIndex=newJMenuItem("索引"); mnuiAbout=newJMenuItem("关于[HappyChat聊天系统]..."); mnuiAbout.addActionListener(this); mnuiContent.setFont(fntDisp1); mnuiIndex.setFont(fntDisp1); mnuiAbout.setFont(fntDisp1); mnuHelp.add(mnuiContent); mnuHelp.add(mnuiIndex); mnuHelp.add(mnuiAbout); setJMenuBar(mbMain); setSize(250,150); setVisible(true); } publicvoidactionPerformed(ActionEventae)
{ JOptionPane.showMessageDialog(null,"您选择了:"+ae.getActionCommand()); if(ae.getSource()==mnuiExit) System.exit(0); }publicstaticvoidmain(Stringargs[]){ newMenuDemo();}JPopupMenu类【例9-2】弹出式菜单应用//弹出菜单应用演示程序importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassPopupMenuDemoextendsJFrameimplementsActionListener{ JPopupMenupopMain; JMenuItemmnuiOpen,mnuiSave; JTextAreataTest; JPanelpnlMain; publicPopupMenuDemo() { pnlMain=newJPanel(); setContentPane(pnlMain); popMain=newJPopupMenu(); mnuiOpen=newJMenuItem("打开文件");
mnuiOpen.addActionListener(this); popMain.add(mnuiOpen); mnuiSave=newJMenuItem("保存文件"); mnuiSave.addActionListener(this); popMain.add(mnuiSave);taTest=newJTextArea(6,20);taTest.append("按右键弹出快捷菜单");taTest.addMouseListener(newPopupListener());pnlMain.add(taTest);setTitle("弹出式菜单演示");setSize(250,150);setVisible(true);}classPopupListenerextendsMouseAdapter{ publicvoidmousePressed(MouseEventme) { if(me.getButton()==MouseEvent.BUTTON3&&!me.isPopupTrigger()) popMain.show(me.getComponent(),me.getX(),me.getY()); }}
publicvoidactionPerformed(ActionEventae){ JOptionPane.showMessageDialog(null,"您选择了:"+ae.getActionCommand());}publicstaticvoidmain(Stringargs[]){ newPopupMenuDemo();}}9.3JToolBar类概述工具栏是窗口中提供的一种快捷的功能区,可以通过单击工具栏上的按钮,得到快捷的功能,Java通过JToolBar类提供这种功能
方法名方法功能JToolBar()创建一个默认为水平方向的工具栏JToolBar(intorientation)创建一个指定方向的工具栏JToolBar(Stringname)创建一个指定名称的工具栏JToolBar(Stringname,intorientation)创建一个指定名称和指定方向的工具栏JButtonadd(Actiona)添加一个指派操作的新的JButtonvoidaddSeparator()将分隔符追加到工具栏的末尾voidsetMargin(Insetsm)设置工具栏边框和它的按钮之间的空白voidsetOrientation(into)设置工具栏的方向voidsetRollover(booleanrollover)设置此工具栏的rollover状态表9.6JToolBar构造方法和常用方法JToolBar应用实例【例9-3】在【例9-1】中增加带有“新建”、“打开”和“保存”按钮的工具栏。//工具栏应用演示程序//引入相关包import.URL;publicclassToolBarDemoextendsJFrameimplementsActionListener{//菜单变量声明 publicToolBarDemo() { super("工具栏应用演示");//构造菜单 JToolBartb=newJToolBar(); JButtonbtnNew=null; btnNew=makeButton("new","NEW","新建一个文件","新建"); tb.add(btnNew); JButtonbtnOpen=null;
btnOpen=makeButton("open","OPEN","打开一个文件","打开"); tb.add(btnOpen); JButtonbtnSave=null; btnSave=makeButton("save","SAVE","保存一个文件","保存"); tb.add(btnSave); JPanelpnlMain=newJPanel(newBorderLayout()); setContentPane(pnlMain); pnlMain.add(tb,BorderLayout.PAGE_START); setSize(250,150); setVisible(true); } publicvoidactionPerformed(ActionEventae) { JOptionPane.showMessageDialog(null,"您选择了:"+ae.getActionCommand()); if(ae.getSource()==mnuiExit) System.exit(0); } JButtonmakeButton(StringstrImage,StringstrAction,StringtxtToolTip,StringstrAlter) {StringimgLocation=strImage+".gif";
URLurlImage=ToolBarDemo.class.getResource(imgLocation);JButtonbtnTemp=newJButton();btnTemp.setActionCommand(strAction);btnTemp.setToolTipText(txtToolTip);btnTemp.addActionListener(this);if(urlImage!=null)//找到图像btnTemp.setIcon(newImageIcon(urlImage));else//没有图像btnTemp.setText(strAlter);returnbtnTemp;}publicstaticvoidmain(Stringargs[]){ newToolBarDemo();}}9.4多行文本框的使用
JTextArea类JTextArea类和TextArea类都表示可编辑的多行文本的文本组件,其中TextArea为AWT组件,JTextArea为Swing组件。JTextArea是一个显示纯文本的多行区域
表9.7JTextArea与TextArea的区别比较项目TextAreaJTextArea滚动在内部处理滚动不管理滚动,允许放置在JScrollPane的内部实现滚动换行具有换行能力,由水平滚动策略来控制换行具有用于换行的bound属性以控制其是否换行。在默认情况下,换行属性设置为false(不换行)大小通过属性rows和columns来确定首选大小通过属性rows和columns确定viewport的首选大小,该viewport被放置到JScrollPane中以匹配由java.awt.TextArea提供的功能。事件监听通过添加一个TextEvent的TextListener来对TextArea的更改进行监视通过DocumentEvent从模型传播到DocumentListeners以进行事件处理JScrollPane类【例9-4】JTextArea与JScrollPane的使用//JTextArea和TextArea以及JScrollBar应用演示程序importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;publicclassTextAreaDemoextendsJFrameimplementsActionListener{ TextAreataLeft; JTextAreajtaRight; JScrollPanejspRight; JButtonbtnInsert,btnReplace; JTextFieldtxtContext; JPanelpnlMain; publicTextAreaDemo() { btnInsert=newJButton("插入"); btnInsert.addActionListener(this); btnReplace=newJButton("替换"); btnReplace.addActionListener(this);
txtContext=newJTextField(10); taLeft=newTextArea(7,12); taLeft.setText("这是TextArea"); taLeft.append("\n常用方法演示!"); taLeft.setSelectionStart(2); taLeft.setSelectionEnd(12); jtaRight=newJTextArea("这是JTextArea加水平和垂直滚动条",6,12); jspRight=newJScrollPane(jtaRight); pnlMain=newJPanel(); pnlMain.add(taLeft); pnlMain.add(jspRight); pnlMain.add(txtContext); pnlMain.add(btnInsert); pnlMain.add(btnReplace); this.setContentPane(pnlMain); setTitle("JTextArea和TextArea实例"); setSize(300,200); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); } publicvoidactionPerformed(ActionEventae) { if(ae.getSource()==btnInsert) jtaRight.insert(txtContext.getText(),jtaRight.getRows()); if(ae.getSource()==btnReplace){} } publicstaticvoidmain(Stringargs[]) { TextAreaDemotd=newTextAreaDemo(); }}9.5列表框的使用JList类和List类表9.9JList构造方法和常用方法方法名方法功能JList()构造一个空的滚动列表JList(Object[]listData)通过一个指定对象数组构造一个列表JList(ListModeldataModel)通过列表元素构造一个列表JList(VectorlistData)通过一个向量构造一个列表,这是JList默认的选择方式intgetSelectedIndex()获取列表中选中项的索引int[]getSelectedIndexes()获取列表中选中的索引数组ObjectgetSelectedValue()获取列表中选择的值Object[]getSelectedValues()获取列表中选择的多个值voidsetSelectionMode(intselectionMode)设置选择模式voidsetVisibleRowCount(intvisibleRowCount)设置不带滚动条时显示的行数JList应用实例【例9-5】JList组件应用演示//JList应用演示程序importjavax.swing.*;importjavax.swing.event.*;importjava.awt.*;importjava.awt.event.*;publicclassJListDemoextendsJFrameimplementsListSelectionListener{ JPanelpnlMain; DefaultListModeldlmName; JListlstName; JLabellblList,lblInfo,lblSelect; publicJListDemo() { super("JList组件演示"); pnlMain=newJPanel(newGridLayout(2,2)); setContentPane(pnlMain); dlmName=newDefaultListModel(); dlmName.addElement("刘志成"); dlmName.addElement("赵爱云"); dlmName.addElement("张自良"); dlmName.addElement("邱中华"); dlmName.addElement("王咏梅"); lstName=newJList(dlmName); lstName.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); lstName.setSelectedIndex(0); //lstName.setVisibleRowCount(4); lstName.addListSelectionListener(this); lblList=newJLabel("请选择姓名:"); lblInfo=newJLabel("您选择的是:"); lblSelect=newJLabel(); lblSelect.setForeground(Color.RED); pnlMain.add(lblList); pnlMain.add(lstName); pnlMain.add(lblInfo); pnlMain.add(lblSelect); setSize(250,150); setVisible(true); } publicvoidvalueChanged(ListSelectionEvente) { lblSelect.setText((String)lstName.getSelectedValue()); } publicstaticvoidmain(Stringargs[]) { newJListDemo(); }}9.6JTable类JTable概述JTable用来显示和编辑规则的二维单元表。JTable有很多用来自定义其外观和编辑的方法,通过这些方法可以轻松地设置简单表。同时提供了这些功能的默认设置。例如,要设置一个10行10列的表,可以使用如下代码:TableModeldataModel=newAbstractTableModel(){publicintgetColumnCount(){return10;}publicintgetRowCount(){return10;}publicObjectgetValueAt(introw,intcol){returnnewInteger(row*col);}};JTabletable=newJTable(dataModel);JScrollPanescrollpane=newJScrollPane(table);AbstractTableModel类方法名方法功能intgetRowCount()返回表格中的行数intgetColumnCount()返回表格中的列数ObjectgetValueAt(introw,intcolumn)返回指定单元格的值isCellEditable(introwIndex,intcolumnIndex)检查指定单元格是否可编辑setValueAt(ObjectaValue,introwIndex,intcolumnIndex)设置指定单元格的值表9.11JTable常用方法表格应用实例【例9-6】JTable应用演示//JTable应用演示程序importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjavax.swing.table.*;publicclassTableDemoextendsJFrame{ finalString[]strColumn={"序号","用户","聊天时间","聊天信息"}; finalObject[][]objData={ {newInteger(1),"liuzc","18:00","晚上好"}, {newInteger(2),"wangym","18:03","你好"}, {newInteger(3),"liuzc","18:10","呵呵!"}, {newInteger(4),"liuzc","19:20","是吗?挺好的啊"}, {newInteger(5),"liuzc","19:25","晚安"}, {newInteger(6),"wangym","19:30","88"} }; publicTableDemo() { super("表格演示"); //TableModeltmHistory=newAbstractTableModel() //{ // publicintgetColumnCount(){returnstrColumn.length;} // publicintgetRowCount(){returnobjData.length;} // publicObjectgetValueAt(introw,intcol){returnobjData[row][col];} // publicStringgetColumnName(intcol){returnstrColumn[col];//}//}; //JTabletblHistory=newJTable(tmHistory); JTabletblHistory=newJTable(objData,strColumn); JScrollPanescrollpane=newJScrollPane(tblHistory); getContentPane().add(scrollpane,BorderLayout.CENTER); setSize(300,200); setVisible(true); } publicstaticvoidmain(Stringargs[]) { newTableDemo(); }}
9.7聊天逻辑实现事件监听程序publicvoidactionPerformed(ActionEventae){ Objectsource=(Object)ae.getSource(); if(source.equals(btnTimer)) { newClock(); } if(source.equals(btnCls)) { clearMessage(); } if(source.equals(btnExit)) { exit(); }
if(source.equals(btnSend)) { sendMessage(); } if(source.equals(btnSave)) { saveMessage(); } if(source.equals(lstUserList))//双击列表框 { changUser(); }}【清空】按钮处理在用户进行聊天过程中,用户可以随时点击【清空】按钮以清空屏幕上的当前聊天信息,参考代码如下:publicvoidclearMessage(){taUserMessage.setText(""); }
9.7聊天逻辑实现事件监听程序【清空】按钮处理【保存】按钮处理双击【在线用户列表】处理【保存】按钮处理【保存】按钮处理参考代码如下:publicvoidsaveMessage(){try{FileOutputStreamfileoutput=newFileOutputStream("message.txt",true);Stringtemp=taUserMessage.getText();System.out.println(temp);fileoutput.write(temp.getBytes());fileoutput.close();}catch(Exceptione){System.out.println(e);}}双击【在线用户列表】处理参考代码如下:publicvoidchangeUser(){ booleankey=true; Stringselected=lstUserList.getSelectedItem(); for(inti=0;i<cmbUser.getItemCount();i++) { if(selected.equals(cmbUser.getItemAt(i))) { key=false; break; } } if(key==true) { cmbUser.insertItemAt(selected,0); } cmbUser.setSelectedItem(selected);}9.8本章小结HappyChat聊天程序分析菜单的使用JToolBar类多行文本框的使用列表框的使用JTable类聊天逻辑实现9.9上机实训
实训目的掌握下拉式菜单和弹出式菜单的使用。掌握工具栏的使用。掌握列表框的使用。掌握多行文本框和滚动面板的使用。掌握表格的使用。掌握用户聊天程序逻辑的实现。实训内容【实训1】编写HappyChat用户聊天程序,其参考界面如图9.1所示。【实训2】实现HappyChat用户聊天程序的基本功能。【实训3】编写一个简单的记事本程序
安全阀基本知识如果压力容器(设备/管线等)压力超过设计压力…1.尽可能避免超压现象堵塞(BLOCKED)火灾(FIRE)热泄放(THERMALRELIEF)如何避免事故的发生?2.使用安全泄压设施爆破片安全阀如何避免事故的发生?01安全阀的作用就是过压保护!一切有过压可能的设施都需要安全阀的保护!这里的压力可以在200KG以上,也可以在1KG以下!设定压力(setpressure)安全阀起跳压力背压(backpressure)安全阀出口压力超压(overpressure)表示安全阀开启后至全开期间入口积聚的压力.几个压力概念弹簧式先导式重力板式先导+重力板典型应用电站锅炉典型应用长输管线典型应用罐区安全阀的主要类型02不同类型安全阀的优缺点结构简单,可靠性高适用范围广价格经济对介质不过分挑剔弹簧式安全阀的优点预漏--由于阀座密封力随介质压力的升高而降低,所以会有预漏现象--在未达到安全阀设定点前,就有少量介质泄出.100%SEATINGFORCE75502505075100%SETPRESSURE弹簧式安全阀的缺点过大的入口压力降会造成阀门的频跳,缩短阀门使用寿命.ChatterDiscGuideDiscHolderNozzle弹簧式安全阀的缺点弹簧式安全阀的缺点=10090807060500102030405010%OVERPRESSURE%BUILT-UPBACKPRESSURE%RATEDCAPACITY普通产品平衡背压能力差.在普通产品基础上加装波纹管,使其平衡背压的能力有所增强.能够使阀芯内件与高温/腐蚀性介质相隔离.平衡波纹管弹簧式安全阀的优点优异的阀座密封性能,阀座密封力随介质操作压力的升高而升高,可使系统在较高运行压力下高效能地工作.ResilientSeatP1P1P2先导式安全阀的优点平衡背压能力优秀有突开型/调节型两种动作特性可远传取压先导式安全阀的优点对介质比较挑剃,不适用于较脏/较粘稠的介质,此类介质会堵塞引压管及导阀内腔.成本较高.先导式安全阀的缺点重力板式产品的优点目前低压储罐呼吸阀/紧急泄放阀的主力产品.结构简单.价格经济.重力板式产品的缺点不可现场调节设定值.阀座密封性差,并有较严重的预漏.受背压影响大.需要很高的超压以达到全开.不适用于深冷/粘稠工况.几个常用规范ASMEsectionI-动力锅炉(FiredVessel)ASMEsectionVIII-非受火容器(UnfiredVessel)API2000-低压安全阀设计(LowpressurePRV)API520-火灾工况计算与选型(FireSizing)API526-阀门尺寸(ValveDimension)API527-阀座密封(SeatTightness)介质状态(气/液/气液双相).气态介质的分子量&Cp/Cv值.液态介质的比重/黏度.安全阀泄放量要求.设定压力.背压.泄放温度安全阀不以连接尺寸作为选型报价依据!如何提供高质量的询价?弹簧安全阀的结构弹簧安全阀起跳曲线弹簧安全阀结构弹簧安全阀结构导压管活塞密封活塞导向不平衡移动副(活塞)导管导阀弹性阀座P1P1P2先导式安全阀结构先导式安全阀的工作原理频跳安全阀的频跳是一种阀门高频反复开启关闭的现象。安全阀频跳时,一般来说密封面只打开其全启高度的几分只一或十几分之一,然后迅速回座并再次起跳。频跳时,阀瓣和喷嘴的密封面不断高频撞击会造成密封面的严重损伤。如果频跳现象进一步加剧还有可能造成阀体内部其他部分甚至系统的损伤。安全阀工作不正常的因素频跳后果1、导向平面由于反复高频磨擦造成表面划伤或局部材料疲劳实效。2、密封面由于高频碰撞造成损伤。3、由于高频振颤造成弹簧实效。4、由频跳所带来的阀门及管道振颤可能会破坏焊接材料和系统上其他设备。5、由于安全阀在频跳时无法达到需要的排放量,系统压力有可能继续升压并超过最大允许工作压力。安全阀工作不正常的因素A、系统压力在通过阀门与系统之间的连接管时压力下降超过3%。当阀门处于关闭状态时,阀门入口处的压力是相对稳定的。阀门入口压力与系统压力相同。当系统压力达到安全阀的起跳压力时,阀门迅速打开并开始泄压。但是由于阀门与系统之间的连接管设计不当,造成连接管内局部压力下降过快超过3%,是阀门入口处压力迅速下降到回座压力而导致阀门关闭。因此安全阀开启后没有达到完全排放,系统压力仍然很高,所以阀门会再次起跳并重复上述过程,既发生频跳。导致频跳的原因导致接管压降高于3%的原因1、阀门与系统间的连接管内径小于阀门入口管内径。2、存在严重的涡流现象。3、连接管过长而且没有作相应的补偿(使用内径较大的管道)。4、连接管过于复杂(拐弯过多甚至在该管上开口用作它途。在一般情况下安全阀入口处不允许安装其他阀门。)导致频跳的原因B、阀门的调节环位置设置不当。安全阀拥有喷嘴环和导向环。这两个环的位置直接影响安全阀的起跳和回座过程。如果喷嘴环的位置过低或导向环的位置过高,则阀门起跳后介质的作用力无法在阀瓣座和调节环所构成的空间内产生足够的托举力使阀门保持排放状态,从而导致阀门迅速回座。但是系统压力仍然保持较高水平,因此回座后阀门会很快再次起跳。导致频跳的原因C、安全阀的额定排量远远大于所需排量。
由于所选的安全阀的喉径面积远远大于所需,安全阀排放时过大的排量导致压力容器内局部压力下降过快,而系统本身的超压状态没有得到缓解,使安全阀不得不再次起跳频跳的原因阀门拒跳:当系统压力达到安全阀的起跳压力时,阀门不起跳的现象。安全阀工作不正常的因素1、阀门整定压力过高。2、阀门内落入大量杂质从而使阀办座和导套间卡死或摩擦力过大。3、弹簧之间夹入杂物使弹簧无法被正常压缩。4、阀门安装不当,使阀门垂直度超过极限范围(正负两度)从而使阀杆组件在起跳过程中受阻。5、排气管道没有被可靠支撑或由于管道受热膨胀移位从而对阀体产生扭转力,导致阀体内机构发生偏心而卡死。安全阀拒跳的原因阀门不回座或回座比过大:安全阀正常起跳后长时间无法回座,阀门保持排放状态的现象。安全阀工作不正常的因素1、阀门上下调整环的位置设置不当。2、排气管道设计不当造成排气不畅,由于排气管道过小、拐弯过多或被堵塞,使排放的蒸汽无法迅速排出而在排气管和阀体内积累,这时背压会作用在阀门内部机构上并产生抑制阀门关闭的趋势。3、阀门内落入大量杂质从而使阀瓣座和导套之间卡死后摩擦力过大。安全阀不回座或回座比过大的因素:4、弹簧之间夹入杂物从而使弹簧被正常压缩后无法恢复。5、由于对阀门排放时的排放反力计算不足,从而在排放时阀体受力扭曲损坏内部零件导致卡死。6、阀杆螺母(位于阀杆顶端)的定位销脱落。在阀门排放时由于振动使该螺母下滑使阀杆组件回落受阻。安全阀不回座或回座比过大的因素:7、由于弹簧压紧螺栓的锁紧螺母松脱,在阀门排放时由于振动时弹簧压紧螺栓松动上滑导致阀门的设定起跳值不断减小。
8、阀门安装不当,使阀门垂直度超过极限范围(正负两度)从而使阀杆组件在回落过程中受阻。
9、阀门的密封面中有杂质,造成阀门无法正常关闭。
10、锁紧螺母没有锁紧,由于管道震动下环向上运动,上平面高于密封面,阀门回座时无法密封安全阀不回座或回座比过大的因素:谢谢观看癌基因与抑癌基因oncogene&tumorsuppressorgene24135基因突变概述.癌基因和抗癌基因的概念.癌基因的分类.癌基因产物的作用.癌基因激活的机理主要内容疾病:
——是人体某一层面或各层面形态和功能(包括其物质基础——代谢)的异常,归根结底是某些特定蛋白质结构或功能的变异,而这些蛋白质又是细胞核中相应基因借助细胞受体和细胞中信号转导分子接收信号后作出应答(表达)的产物。TranscriptionTranslationReplicationDNARNAProtein中心法规Whatisgene?基因:
—是遗传信息的载体
—是一段特定的DNA序列(片段)
—是编码RNA或蛋白质的一段DNA片段
—是由编码序列和调控序列组成的一段DNA片段基因主宰生物体的命运:微效基因的变异——生物体对生存环境的敏感度变化关键关键基因的变异——生物体疾病——死亡所以才有:“人类所有疾病均可视为基因病”之说注:如果外伤如烧伤、骨折等也算疾病的话,外伤应该无法归入基因病的行列。Genopathy问:两个不相干的人,如果他们患得同一疾病,致病基因是否相同?再问:同卵双生的孪生兄弟,他们患病的机会是否一样,命运是否相同?┯┯┯┯
ATGC
TACG
┷┷┷┷┯┯┯┯┯
ATAGC
TATCG
┷┷┷┷┷┯┯┯┯
ATGC
TACG
┷┷┷┷┯┯┯
AGC
TCG
┷┷┷┯┯┯┯
ACGC
TGCG
┷┷┷┷┯┯┯┯
ATGC
TACG
┷┷┷┷增添缺失替换DNA分子(复制)中发生碱基对的______、______
和
,而引起的
的改变。替换增添缺失基因结构基因变异的概念:英语句子中的一个字母的改变,可能导致句子的意思发生怎样的变化?可能导致句子的意思不变、变化不大或完全改变THECATSATONTHEMATTHECATSITONTHEMATTHEHATSATONTHEMATTHECATONTHEMAT同理:替换、增添、缺失碱基对,可能会使性状不变、变化不大或完全改变。基因的结构改变,一定会引起性状的改变??原句:1.基因多态性与致病突变基因变异与疾病的关系2.单基因病、多基因病3.疾病易感基因
基因多态性polymorphism是指DNA序列在群体中的变异性(差异性)在人群中的发生概率>1%(SNP&CNP)<1%的变异概率叫做突变基因多态性特定的基因多态性与疾病相关时,可用致病突变加以描述SNP:散在单个碱基的不同,单个碱基的缺失、插入和置换。
CNP:DNA片段拷贝数变异,包括缺失、插入和重复等。同义突变、错义突变、无义突变、移码突变
致病突变生殖细胞基因突变将突变的遗传信息传给下一代(代代相传),即遗传性疾病。体细胞基因突变局部形成突变细胞群(肿瘤)。受精卵分裂基因突变的原因物理因素化学因素生物因素基因突变的原因(诱发因素)紫外线、辐射等碱基类似物5BU/叠氮胸苷等病毒和某些细菌等自发突变DNA复制过程中碱基配对出现误差。UV使相邻的胸腺嘧啶产生胸腺嘧啶二聚体,DNA复制时二聚体对应链空缺,碱基随机添补发生突变。胸腺嘧啶二聚体胸腺嘧啶胸腺嘧啶紫外线诱变物理诱变(physicalinduction)
5溴尿嘧啶(5BU)与T类似,多为酮式构型。间期细胞用酮式5BU处理,5BU能插入DNA取代T与A配对;插入DNA后异构成烯醇式5BU与G配对。两次DNA复制后,使A/T转换成G/C,发生碱基转换,产生基因突变。化学诱变(chemicalinduction)碱基类似物(baseanalogues)诱变AT5-BUA5-BUAAT5-BU5-BU(烯醇式)
(酮式)GGC1.生物变异的根本来源,为生物进化提供了最初的原始材料,能使生物的性状出现差别,以适应不同的外界环境,是生物进化的重要因素之一。2.致病突变是导致人类遗传病的病变基础。基因突变的意义概述:肿瘤细胞恶性增殖特性(一)肿瘤细胞失去了生长调节的反馈抑制正常细胞受损,一旦恢复原状,细胞就会停止增殖,但是肿瘤细胞不受这一反馈机制抑制。(二)肿瘤细胞失去了细胞分裂的接触抑制。正常细胞体外培养,相邻细胞相接触,长在一起,细胞就会停止增殖,而肿瘤细胞生长满培养皿后,细胞可以重叠起生长。(三)肿瘤细胞表现出比正常细胞更低的营养要求。(四)肿瘤细胞生长有一种自分泌作用,自己分泌生长需要的生长因子和调控信号,促进自身的恶性增殖。Whatisoncogene?癌基因——是基因组内正常存在的基因,其编码产物通常作为正调控信号,促进细胞的增殖和生长。癌基因的突变或表达异常是细胞恶性转化(癌变)的重要原因。——凡是能编码生长因子、生长因子受体、细胞内信号转导分子以及与生长有关的转录调节因子等的基因。如何发现癌基因的呢?11910年,洛克菲勒研究院一个年轻的研究员Rous发现,鸡肉瘤细胞裂解物在通过除菌滤器以后,注射到正常鸡体内,可以引起肉瘤,首次提出鸡肉瘤可能是由病毒引起的。0.2m孔径细菌过不去但病毒可以通过从病毒癌基因到细胞原癌基因的研究历程:Roussarcomavirus,RSVthefirstcancer-causingretrovirus1958年,Stewart和Eddy分离出一种病毒,注射到小鼠体内可以引起肝脏、肾脏、乳腺、胸腺、肾上腺等多种组织器官的肿瘤,因而把这种病毒称为多瘤病毒。50年代末、60年代初,癌病毒研究成了一个极具想像力的研究领域,主流科学家开始进入癌病毒研究领域polyomavirus这期间,Temin发现RSV有不同亚型,且引起细胞恶变程度不同,推测RNA病毒将其遗传信息传递给了正常细胞的DNA。这与Crick提出的中心法则是相违背的让事实屈从于理论还是坚持基于实验的结果?VSTemin发现逆转录酶,1975年获诺贝尔奖TeminCrickTemin的实验设计:实验设计简单而巧妙:将合成DNA所需的“原料”,即A、T、C、G四种脱氧核苷酸,与破坏了外壳的RSV一起在体外40℃的条件下温育一段时间结果在试管里获得了一种新合成的大分子,它不能被RNA酶破坏,但却可以被DNA酶所分解,证明这种新合成的大分子是DNA用RNA酶预先破坏RSV的RNA,再重复上述的试验,则不能获得这种大分子,说明这个DNA大分子是以RSV的RNA为模板合成的1969年,一个日本学者里子水谷来到Temin的实验室,这是一个非常擅长实验的年轻科学家。按Temin的设想,他们开始寻找RSV中存在“逆转录酶”的证据DNA
RNA
ProteinTranscriptionTranslationReplicationReplicationRe-Transcription修正中心法规据说,1975年Temin因发现逆转录酶而获诺贝尔奖时,Bishop懊恼不已,因为早在1969年他就认为Temin的RNADNA的“前病毒理论”有可能是正确的,并且也进行了一些实验,但不久由于资深同事的规劝而放弃了这方面的努力。但Bishop马上意识到:逆转录酶的发现为逆转录病毒致癌的研究提供了一条新途径。一个RSV,三个诺贝尔奖!!!1989年,UCSF的Bishop和Varmus根据逆转录病毒的复制机制发现了细胞癌基因,并获诺贝尔奖。Cellularoncogene启示:Perutz说:“科学创造如同艺术创造一样,都不可能通过精心组织而产生”Bishop说:“许多人引以为豪的是一天工作16小时,工作安排要以分秒计……可是工作狂是思考的大敌,而思考则是科学发现的关键”Perutzsharedthe1962NobelPrizeforChemistrywithJohnKendrew,fortheirstudiesofthestructuresofhemoglobinandglobularproteins科学的本质和艺术一样,都需要直觉和想像力请给自己一些思考的时间吧!癌基因的分类目前对癌基因尚无统一分类的方法,一般有下面3种分类方法:一、按结构特点分(6)类(一)src癌基因家族(二)ras癌基因家族(三)sis癌基因家族(四)myc癌基因家族(五)myb癌基因家族(六)其它:如fos,erb-A等。三、按细胞增殖调控蛋白特性分成(4)类(一)生长因子(二)受体类(三)细胞内信号转换器(四)细胞核因子二、按产物功能分(8)类(一)生长因子类(二)酪氨酸蛋白激酶(三)膜相关G蛋白(四)受体,无蛋白激酶活性(五)胞质丝氨酸-苏氨酸蛋白激酶(六)胞质调控因子(七)核反式调控因子(八)其它:db1、bcl-2癌基因产物参与信号转导
胞外信号作用于膜表面受体→胞内信使物质的生成便意味着胞外信号跨膜传递的完成。胞内信使至少有:cAMP(环磷酸腺苷)IP3(三磷酸肌醇)PG(前列腺素)cGMP(环磷酸鸟苷)DG(二酰基甘油)Ca2+(钙离子)CAM(钙调素)主要机制是通过蛋白激酶活化引起底物蛋白一连串磷酸化的生物信号反应过程,跨膜机制涉及到:(一)质膜上cAMP信使系统(二)质膜上肌醇脂质系统这两个系统都是由受体鸟苷酸调节蛋白(GTP-regulatoryprotein,G蛋白)和效应酶(腺苷酸环化酶磷脂酶等)组成,有相似的信号转导过程:即受体活化后引起GTP与不同G蛋白结合活化和抑制效应酶从而影响胞内信使产生而发生不同的调控效应。(三)受体操纵的离子通道系统(四)受体酪氨酸蛋白激酶的转导
(一)获得性基因病
(acquiredgeneticdisease)例如:病毒感染激活原癌基因癌基因活化的机制
(二)染色体易位和重排使无活性的原癌基因转位至强启动子或增强子附近而被活化。与基因脆性位点相关。(三)基因扩增(四)点突变三、癌基因的产物与功能(一)癌基因产物作用的一般特点1.目前发现c-onc均为结构基因.2.癌基因产物可分布在膜质核也可分泌至胞外.(二)癌基因产物分类1.细胞外生长因子:TGF-b2.跨膜生长因子受体:MAPK3.细胞内信号转导分子:Gprotein/Ras4.核内转录因子
(三)癌基因产物的协同作用实验证明,用ras或myc分别转染细胞,可使细胞长期增殖,但不能转化成癌细胞,在裸鼠体内也不能形成肿瘤。但用ras+myc同时转染细胞,则使细胞转化成癌细胞。说明:致癌至少需要2种或以上的onc协同作用,2种onc在2条通路上发挥作用,由于细胞增殖调控是多因子,多阶段影响的结果。而影响增殖分化的onc达几十种之多,所以大多数人认为:癌发生是多阶段多步骤的。Whatistumorsuppressorgene?肿瘤抑制基因(抗癌基因、抑癌基因)——是调节细胞正常生长和增殖的基因。当这些基因不能表达,或其产物失去活性时,细胞就会异常生长和增殖,最终导致细胞癌变。反之,若导入或激活它则可抑制细胞的恶性表型。——癌基因与抑癌基因相互制约,维持细胞增殖正负调节信号的相对稳定。影响1岁的儿童“二次打击”学说两个等位基因同时突变视网膜母细胞瘤(Retinoblastoma)RB基因变异(13号染色体)
(1)脱磷酸化Rb蛋白(活性)与转录因子E2F结合,抑制基因的转录活性(2)磷酸化Rb蛋白(失活)与E2F解离,释放E2F(3)E2F启动基因转录(4)细胞进入增生阶段(G1S)因此,Rb蛋白在控制细胞生长方面发挥重要作用一旦Rb基因突变可使细胞进入过度增生状态RB基因的功能等位基因(allele)例如:花颜色基因位于一对同源染色体的同一位置上、控制相对性状的两个的基因叫等位基因(allele)一对相同的等位基因称纯合等位基因
一对不同的等位基因称杂合等位基因
显性基因隐性基因完全显性不完全显性共显性问:女性的两条X染色体基因应如何表达?拓展知识:X染色体基因中,有65%完全处于“休眠”状态,20%仅在部分女性身上“休眠”,15%则完全逃离“休眠”状态一旦其中一条X染色体被损坏,还可以由另一条X染色体来纠正男性却只有一条X染色体,一旦它遭到破坏,男性就会患上血友病、色盲以及肌肉萎缩症等各种遗传病以前人们一直认为,在女性的两条X染色体中,有一条染色体是完全不起作用或是处于“休眠”状态的在Y染色体中,目前仍在“工作”的基因只剩下不到100个X染色体中“工作”的基因>1000个有一个这样的故事:20年前一次意外事故,三个工人遭受钴60(Co60)放射性核素的照射结果:一名工人不久死亡一名工人几年后死于白血病最后一名工人20年后患糖尿病就诊你知道医生在为病人检查时发现了什么吗?锁骨骨折肋骨串珠样X光片发现广泛性骨质缺损骨髓检查——浆细胞比例为30%左右(正常为0.6-1.3%)(多发性骨髓瘤)因此,多基因病涉及遗传因素和环境因素物理因素化学因素生物因素自发因素2.多基因病(polygenicdisease):性状或疾病的遗传方式取决于两个以上微效基因的累加作用,同时还受环境因素的影响,因此这类性状也称为复杂性状或复杂疾病(complexdisease)也叫:“复杂性状疾病”近视(myopia)高血压(hypertension)糖尿病(diabetes)精神分裂症(schizophrenia)哮喘(asthma)肿瘤或癌
(tumororcancer)多基因病的遗传要点数量性状的遗传基础是两对以上基因。这些基因之间没有显,隐性的区别,而是共显性。每个基因对表型的影响很小,称为微效基因。微效基因具有累加效应,即一个基因对表型作用很小,但若干个基因共同作用,可对表型产生明显影响。不仅遗传因素起作用,环境因素具有明显作用。例如:结肠癌(Coloncancer)相关基因:NGX6,SOX7,ITGB1,HSPA9B,MAPK8,PAG,
RANGAP1,SRC和CDC2等。相关信号通路:ras/MEK/ERK,JNK,Rb/E2F,PI3K/AKT及受体相互作用相关通路,免疫反应相关通路以及细胞黏附相关通路等。①早期原发癌生长②肿瘤血管形成③肿瘤细胞脱落并侵入基质④进入脉管系统⑤癌栓形成⑥继发组织器官定位生长⑦转移癌继续扩散例如:糖尿病(diabetes)依赖胰岛素型糖尿病在位于第6号染色体上可能包含至少一个对I型糖尿病敏感的基因在人类基因组中,大约10个位点现在被发现似乎对I型糖尿病敏感其中:1)11号染色体位点IDDM2上的基因
2)葡萄糖激酶基因高血压(hypertension)目前最受关注的是ATP2B1基因编码一种膜蛋白,具有钙泵特性能将高浓度细胞内钙泵出细胞外。精神神经性疾病精神分裂症基因表达改变/诱导增强家族史家暴基因本质:基因组变异惊吓—?—基因突变——精神病多基因病的遗传:易患性(liability)易感性(susceptibility)发病阈值(threshold)易患性(liability)——在多基因病发生中,遗传因素和环境因素共同作用决定一个个体患某种遗传病的可能性。possibility遗传因素(hereditaryfactors)环境因素(environmentalfactor)易感性(susceptibility)——特指由遗传因素决定的患病风险,仅代表个体所含有的遗传因素,易感性完全由基因决定。——在一定的环境条件下,易感性高低可代表易患性高低。riskwithdisease发病阈值(threshold)——当一个个体易患性高到一定限度就可能发病——这种由易患性所导致的多基因病发病最低限度称为发病阈值minimum例如:三核苷酸拷贝数变异CGG(精氨酸)重复:——重复5-54次,正常——重复6-230次,携带者(敏感体质)——重复230-4000次,发病
如:脆性X染色体综合征智力低下患者细胞在缺乏胸腺嘧啶或叶酸的环境中培养时往往出现X-染色体发生断裂男性发病1/1200-2500,女性发病1/1650-5000FragileXsyndrome阈值效应举例:长脸,耳外凸智力低下语言障碍对外界反应迟钝Copynumbervariation问:为什么是三核苷酸重复而不是4、5个?提示:三核苷酸处于阅读框架内,不容易破坏原有基因的开放阅读框架(ORF)4、5个核苷酸不在ORF内,变化容易对原有基因造成很大的影响,一般不容易积累保留癌蛋白抗原癌基因抑癌基因P53蛋白积聚,细胞周期变化P53等位基因丢失、点突变肿瘤形成肿瘤促进因子细胞表型变化相关基因作用P53基因阻滞细胞周期:G1和G2/M期
促进细胞调亡:bax/bcl2
维持基因组稳定:核酸内切酶活性
抑制肿瘤血管生成:Smad4P53基因可否用于治疗癌症?
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高考物理总复习专题十二机械振动光学第1讲机械振动、振动图像练习含答案
- 教你写一份合格的上班玩方式保证书
- 《化学方程式》课件
- 高考地理一轮复习第五章地表形态的塑造第一节常见地貌类型和地貌的观察课件
- 河北省南宫市高中地理 锋面系统与天气教案 新人教版必修1
- 春高中化学 第三章 金属及其化合物 第三节 用途广泛的金属材料教案 新人教版必修1
- 高中数学 第2章 统计 2.2 总体分布的估计 2.2.2 频率分布直方图与折线图教案 苏教版必修3
- 2024-2025学年高中化学 第二章 第三节 分子的性质 第2课时 较强的分子间作用力-氢键教案 新人教版选修3
- 2024年六年级道德与法治下册 第四单元 让世界更美好 9 日益重要的国际组织教案 新人教版
- 高中英语 Unit 3 Travel journal Period 1教案 新人教版必修1
- 二年级上册数学计算能力测试题73375
- 气体流量和流速及与压力的关系
- 混凝搅拌实验操作方法
- M75浆砌片石护坡施工方案
- 拌混凝土拌合站管理办法
- 文明如厕讲卫生PPT课件
- 证券公司年度营业部经营管理业绩考核办法
- 电子工程师必备基础知识
- 网站建设与运营课程标准
- 用户运营基础知识
- 国家电网有限公司电网建设项目档案管理办法
评论
0/150
提交评论