Java语言程序设计 第2版 教学课件 作者 赵国玲 ch6-大学课件-在线_第1页
Java语言程序设计 第2版 教学课件 作者 赵国玲 ch6-大学课件-在线_第2页
Java语言程序设计 第2版 教学课件 作者 赵国玲 ch6-大学课件-在线_第3页
Java语言程序设计 第2版 教学课件 作者 赵国玲 ch6-大学课件-在线_第4页
Java语言程序设计 第2版 教学课件 作者 赵国玲 ch6-大学课件-在线_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章Java图形用户界面设计本章主要内容Java图形用户界面概述Java布局管理Java事件处理常用Swing组件的使用图形界面中的用户自定义成分创建和使用菜单应用案例学习目标

了解Java图形用户界面编程基础理论和图形用户界面程序设计方法掌握AWT布局管理器的应用

熟练掌握常见Swing组件和事件处理机制熟悉图形绘制、字体及颜色设置的方法6.1

Java图形用户界面概述设计和实现图形用户界面的工作主要有:创建组件(Component):创建组成界面的各种元素。指定布局(Layout):根据需要排列组件的位置。响应事件(Event):定义图形用户界面的事件和各界面元素对不同事件的响应,从而实现图形用户界面与用户的交互功能。6.1

Java图形用户界面概述一、AWT与Swiwng组件在Java1.0刚刚出现时,它包含了一个用于基本GUI程序设计的类库,Sun将它称为抽象窗口工具(Abstract

Windows Toolkit,AWT)。基本AWT库采用将处理用户界面元素的任务委派给每个目标平台(如:Windows、Unix、Solaris等等)的本地GUI工具箱的方式,由本地GUI工具箱负责用户界面元素的创建和动作。1996年,Netscape创建了一种IFC(Internet

Foundation

Class)的GUI库它采用了与AWT完全不同的工作方式。它将按钮、菜单这样的用户界面元

素绘制在空白窗口上,而对等体只需要创建和绘制窗口。因此,

Netscape的IFC部件在程序运行的所有平台上的外观和动作都一样。Sun与Netscape合作完善了这种方式,创建了一个名为Swing的用户界面库。现在,Swing已是Java基础类库(Java

Foundation

Class,JFC)的一部分。6.1

Java图形用户界面概述二、ava

图形APIJava中涉及图形API的包有两个java.awt和javax.swing,AWT类定义在java.awt包中,swing组件定义在javax.swing包中,大多数Swing组件的名字前都有前缀J,如JComponent,JApplet等6.1

Java图形用户界面概述三、Java图形用户界面的构成1.容器容器(Conatiner)是用来组织其他界面成分和元素的单元。它是Component的子类,因此容器本身也是一个组件,具有组件的所有性质,但是它的主要功能是容纳其它组件和容器。控制组件控制组件是组成图形用户界面的最小单位之一,它里面不再包含任何其它的成分。控制组件的作用是完成与用户的一次交互,如接受用户命令、接受用户的文本输入、显示文本或图形等。用户自定义成分图6-3用户登录界面除了以上标准的图形界面元素,还可以根据用户需要设计一些用户自定义的图形界面成分,6.1

Java图形用户界面概述四、图形用户界面程序实例【例6-1】用Swins组件创建用户登录界面。6.2

Java布局管理布局管理器属于AWT组件,常用布局管理器类主要有五个:FlowLayout、BorderLayout、GridLayout、CardLayout、GridBagLayout。每一种容器都有自己默认的布局管理器,如果不希望使用默认的布局管理器,则可以使用Container的setLayout()方法来设置容器的布局管理器。6.2

Java布局管理1.

FlowLayoutFlowLayout构造方法有如下几种:FlowLayout():创建每行组件居中对齐,组件间距为5个像素单位的布局管理器对象。FlowLayout(intalign):创建指定每行组件对齐方式,组件间距为5个像素单位的布局管理器对象。Align的取值是表示组件对齐方式的三个常量:CENTER(指定组件的每一行居中对齐)、LEFT(指定组件的每

一行左对齐)、RIGHT(指定组件的每一行右对齐)。如:FlowLayout(FlowLayout.LEFT);FlowLayout(intalign,int

hgap,int

vgap):创建指定每行组件对齐方式,指定组件间距的布局管器对象。其中第一个参数表示组件的对齐方式,第二个参数是组件之间的横向间隔,第三个参数是组件之间的纵向间隔,单位是象素。如;FlowLayout(FlowLayout.RIGHT,20,40);6.2

Java布局管理2.

BorderLayoutBorderLayout(边框布局)将容器的布局分为上、下、左、右中五个区域,分别对应为:North(北区)、South(南区)、

West(西区)、East(东区)和Center(中区)。当容器的大小改变时,容器中的各个组件相对位置不变,其中间部分的尺寸会发生变化,四周组件宽度固定不变。BorderLayout构造方法有如下几种:BorderLayout():创建组件间无间距的布局对象。BorderLayout(int

hgap,int

vgap):创建指定组件间距的布局对象。6.2

Java布局管理3.

GridLayoutGridLayout网格布局管理器,将容器分成尺寸相同的网格,组件被放置在网格的空白处,顺序与流式布局一样。网络中的组件具有相同的大小。GridLayout布局管理器有三个构造方法:GridLayout():以每行一列的方式构建一个GridLayout对象。GridLayout(int

row,int

columns):根据指定行数和列数构造一个GridLayout对象,组件间距为0。GridLayout(int

row,int

columns,int

hgap,int

vgap根据指定行数和列数构造一个GridLayout对象,组件间距按指定值设置。6.2

Java布局管理4.

CardLayoutCardLayout卡片布局管理器,将组件放在一系列卡片上,一次只能看到一张卡片,在一张卡片中只能放一个组件。使用构造方法CardLayout()可以构建CardLayout对象。组件按添加顺序放在卡片序列中,使用下面的方法可以将组件添加到容器中:add(Component

component,String

name);其中String型参数name给卡片中的组件指定一个标识。为了使组件在使用CardLayout的容器中可见,可使用CardLayout对象的下列方法:frist(Container

container):显示容器中的第一张卡片。last(Container

container):显示容器中的最后一张卡片。next(Container

container):显示容器中的下一张卡片。show(Containercontainer,Stringname):显示容器中指定名称的卡片。6.2

Java布局管理5.

GridBagLayoutGridBagLayout网格块布局管理器,是一种灵

活而复杂的布局管理器,它与GridLayout局管理器相似,都是按网格安放组件,所不同的是GridBagLayout的组件可以大小不同,可

以按任意次序添加。6.3

Java事件处理在Java中,事件源本身不处理事件,而是委托相应的事件监听器来处理,这种事件处理模式被称为委托模式。每一个可以触发事件的组件被当作事件源,每一种事件都对应专门的监听器。监听器负责接收和处理这种事件。一个事件源可以触发多种事件,如果它注册了某种事件的监听器,那么这种事件就会被接收和处理。6.3

Java事件处理6.3

Java事件处理事件、事件类型及对应监听器接口触发事件事件类型监听器(接口)单击按钮、双击列表项、选择菜单项ActionEventActionListener滚动条位置改变AdjustmentEventAdjustmentListener调整组件大小,移动、隐藏或显示组件ComponentEventComponentListener容器内组件的添加、删除ContainerEventContainerListener组件失去或获取焦点FocusEventFocusListener选择或取消列表框、复选框等选项ItemEventItemListener按下、放开某键KeyEventKeyListener鼠标移动、单击、拖动或释放MouseEventMouseListenerMouseMotionListener文本框的输入或修改等TextEventTextListener窗口打开、关闭、激活或退出WindowEventWindowListener6.4常用Swing组件的使用一、JComponent中的常用属性和和方法所有Swing控制组件都是JComponent的子类,它们都继承了JComponent的属性和方法。public

Color

getBackground()

获取组件的背景色。public

Font

getFont()

获取组件的字体。public

Color

getForeground()获取组件的前景色。public

Graphics

getGraphics()获取此组件上使用的图形对象public

void

setBackground(Color

c)设置组件的背景色。public

void

setForeground(Color

c)设置组件的前景色。public

void

setEnabled(boolean

enabled)

设置是否启用此组件。Public

void

setFont(Font

font)

设置此组件的字体。public

void

setSize(int

width,int

height)

设置此组件的大小。Public

void

setVisible(boolean

aFlag)

设置组件是否可见。public

void

requestFocus()

使组件获得输入焦点。6.4常用Swing组件的使用二、容器组件设计GUI时需要一个主窗口,用来放置不同的

可视化组件。主窗口也称为顶层容器,它包含窗口中出现的所有其他组件。为了合理布局窗口中的组件,每个顶层容器可以包含一个或若干个中间容器,称其为内容面板。一个GUI应用程序至少有一个顶层容器。6.4常用Swing组件的使用1.JFrame框架JFrame是Swing图形用户界面应用程序中的主窗口,窗口有边界、标题、关闭按钮等。容器。说明:JFrame被默认初始化为不可见、且宽和高均为0个像素,可使用setVisible(true)方法使之可见,并用setSize()设置大小。JFrame的默认布局管理器为BorderLayout。如果不进行布局设置,只显示最后添加到框架中的一个组件,且显示在框架的中央、占据整个框架。以下程序段可用于创建一个标题为:我的窗口的框架。

import

java.awt.*;import

java.awt.

Swing.*;publicclassFrameDemo

extends

JFrame

{public

static

void

main(String

args[]){JFrame

f=new

JFrame("我的窗口");

f.setSize(400,400);f.setTitle("你好!");

f.setVisible(true);}}6.4常用Swing组件的使用2.

JPanelJPanel是一种添加到其他容器中使用的组件,GUI设计中一般将一组相关的组件添加到JPanel中,然后再将JPanel添加到框架或applet中。JPanel的构造方法有:JPanel():创建具有默FlowLayou布局的JPanel对象。JPanel(LayoutManagerlayout):创建具有指定布局管理器JPanel对象。以下程序段是使用JPanel的有关核心语句:Panel

pn1=new

Panel();pn1.setSize(100,200);pn1.setLoation(0,50);Frame

f=new

Frame();f.add(pn1);pn1.add(button)JPanel的默认布局管理器是FlowLayout。6.4常用Swing组件的使用三、按钮(JButton)按钮是一种点击时触发行为的组件,是GUI中非常重要的一种基本组件。1.JButton构造方法JButton有如下类型的构造方法:JButton()

创建不带文本和图标的按钮。JButton(Icon

icon)创建带图标的按钮。JButton(String

text)创建带文本的按钮。JButton(String

text,Icon

icon)创建带文本和图标的按钮。图标是一个固定大小的图片,用于装饰组件。利用类Imagelcon可以从图像文件中得到图标,如:Icon

icon=new

Imagelcon(“photo.gif”);JButtonbutton=newJButton(Iconicon);创建一个带图标的按钮。目前Java支持GIF和JPEG图像格式。6.4常用Swing组件的使用2.常用方法publicvoidsetMnemonic(intmnemonic)设置快捷字母键,它通常是与Alt组合。如:

Button.setMnemonic(KeyEvent.VK_W);设置快捷字母键为W,按下Alt+W可将些按钮激活。publicvoid

setActioncommand(String

actioncommand)设置按钮的动作命令。3.JButton事件按钮可触发多种事件,不过需要响应的是ActionEvent,可实现ActionListener监听器接口中的actionPerformed(Event

e)。在

actionPerformed(Event

e)方法中,可用e.getActioncommand()或

e.getSource()确定事件源。6.4常用Swing组件的使用四、标签(JLabel)标签是用户只能查看不能修改其内容的组件,常用来在界面输出信息。1.JLabel构造方法创建标签的构造方法有:public

JLabel()创建一个空标签。public

JLabel(String

text)创建一个指定文字的标签。

public

JLabel(Icon

image)创建一个指定图标的标签。public

JLabel(String

text,Icon

image,int

horizontalAlignment)创建一个指定文字、图标和水对齐方式的标签其中,horizontalAlignment水平对齐方式可以是SwingConstants中定义的以下常量之一:LEFT、CENTER、RIGHT、LEADING或TRAILING。实现标签对象的程序语句为:JLabel

jLabel=new

JLabel(“这是Swing标签",JLabel.LEFT);contentPane.add(jLabel);再如:JLabel

mapLabe=new

JLabel(new

ImageIcon("c.gif"));2.常用方法getText()

返回标签显示的文本字符串。setIcon(Icon

icon)

定义标签将显示的图标。setText(Stringtext)定义此组件将要显示的单行文本。6.4常用Swing组件的使用五、文本框(JTextField、JTextArea、JPasswordField)Java提供了单行文本框JTextfield、多行文本框JTextArea和口令框JPasswordField,既可以作为输入组件又可以作为输出组件。1.单行文本框JTextFieldJTextField的构造方法:JTextField()

构造一个空的文本输入框。JTextField(String

text)

构造一个新的文本输入框,以指定文本作为初始文本。

JTextField(String

text,int

columns)构造一个新的文本输入框,并指定文字和初始列数。

JTextField常用方法有:setText(String

text)

设置文本框中显示的字符串。getText(

)

获取文本框中显示的字符串。getColumns()获取文本框中的列数。

setColumns(int

columns)

设置文本框中的列数。setHorizontalAlignment(int

value)

设置文本框中文本的水平对齐方式。其中value取值为:JTextField.LEFT、JTextField.CENTER、JTextField.RIGHT等。setFont(Font

f)

设置文本框中文本的字体。

JTextField可触发的主要事件:在文本框中单击鼠标或按回车键,触发ActionEvent事件,改变文本框的内容引发TextEvent事件。6.4常用Swing组件的使用2.多行文本框JTextArea要在文本框中处理多行文字,则需要使用JTextArea组件,JtextArea又称为文本区组件。

JTextArea构造方法:JTextArea()

构造一个空的多行文本区。JTextArea(String

text)

用指定的显示文本构造一个新的文本区。

JTextArea(int

rows,int

columns)创建一个指定行数和列数的空的文本区。JTextArea(Strinttext,int

rows,intcolumns)创建一个指定行数、列数和文本内容的文本区。如:JTextArea

jTextArea=new

JTextArea(“这是多行文本域!");

contentPane.add(jTextArea);JtextArea常用方法:insert(String

s,int

pos)将字符串s插入到文本区的指定位置。

append(String

s)将字符串s插入到文本区的末尾。replaceRange(String

s,int

start,int

end)用字符串s替换文本中从位置start到end的文字

setLineWrap(boolean

wrap)设定文本区的文本是否自动换行,wrap为true时自动换行,默认不自动换行。多行文本框的文本内容仍可用setText()和getTex()方法进行设置和获取。触发的事件只有

TextEvent。6.4常用Swing组件的使用3.口令文本框JPasswordField单行口令文本框JPasswordField允许编辑一个单行文本,但不显示原始字符,是一个专门用于输入用户口令的文本组件。JPasswordField构造方法与JTextField类的构造方法类似。常用的其他方法有:getPassword()获取输入的口令。setEchoChar(char

c)设置要用于回显的字符,默认值为"*"。创建口令文本框的语句如:JPasswordField

jPasswordField

=

newJPasswordField();contentPane.add(jPasswordField);6.4常用Swing组件的使用六、复选框(JCheckBox)复选框可以为用户提供多个选项,让用户从中任意进行选择,它具有开关或真假两种状态。当用户单击复选框时,状态会发生改变。创建复选框的构造函数如下:JCheckBox(

)

创建不带文本或图标,初始非选中的复选框。JCheckBox(String

text)

用指定的文本创建初始非选中的复选框。JCheckBox(Stringtext,booleanselected)用指定文本创建一个复选框,并指定是否初始选中该复选框。若selected为真,表示按钮初始状态为选中。如:

JCheckBox jCheckBox1

=

new

JCheckBox("北京");contentPane.add(jCheckBox1);JCheckBox

jCheckBox1=new

JCheckBox(“北京”,ture);则初始状态为选中JCheckBox类常用的其他方法是:isSelected(),其格式为:public

Boolean

isSelected();当复选择框按钮被选中时返回值为true,否则为false。JCheckBox能够引发ActionEvent和ItemEvent事件。以下代码演示如何实现itemStateChanged()方法。6.4常用Swing组件的使用七、单选按钮(JRadioButton)单选按钮为用户提供多个选项,让用户从中选择一项,即实现“多选一”。为了实现从一组单选按钮选择一个,应该把多个单选按钮放入一个按钮组(ButtonGrou),这样当选中某一项时,其它的单选按钮才能变成未选中状态。如果不放入按钮组,其使用效果与复选框相同。JRadioButton的构造方法与JCheckBox相似,可以引发的事件也是ItemEvent和ActionEvent。以下程序代码可实现单选按钮创建ButtonGroup

buttonGroup=new

ButtonGroup();//声明按钮组JRadioButton

jRadioButton1=new

JRadioButton("男");

JRadioButton

jRadioButton2=new

JRadioButton("女");

buttonGroup.add(jRadioButton1);buttonGroup.add(jRadioButton2);contentPane.add(jRadioButton1);contentPane.add(jRadioButton2);6.4常用Swing组件的使用八、组合框(JComboBox)JComboBox组合框是由若干项目组成的简单列表,用户能够从列表中进行选择,一次只能从中选择一项。使用这一组件可以限制用户的选择范围,并能避免对输入数据有效性的验证。创建JComboBox的构造方法有:JComboBox()

创建一个下拉列表为空的组合框。

JComboBox(Obiect[]stringItems)用指定的数组创建组合框。对JcomboBox的操作有以下常用方法:addItem(Object

item)

将项添加至项的列表。getItemAt(int

index)

返回指定索引位置的列表项。getItemCount()

返回列表(作为对象)中的项数。getSelectedItem()

将当前选择的项作为一个对象返回。getSelectedIndex()

返回当前选择项的索引位置。removeItem(Object

item)

删除指定的项。removeAllItem(

)

删除列表中的所有项。如:JComboBox

jcb=new

JComboBox();jcb.

addItem(“Item1”);jcb.

addItem(“Item2”);jcb.

addItem(“Item3”);此程序段创建了一个有三个选项的组合框。

JcomboBox可以引发ActionEvent和ItemEvent事件。6.4常用Swing组件的使用九、列表框(JList)JList列表框的作用与组合框基本相同,但它允许用户同时选择多个选项。可以用一组字符串构造一个列表,格式为:JList(Obiect[]

stringItems);如:String[

]

list={“Item1”,

“Item2”,

“Item3”,}JList

jList=new

JComboBox(list);JList对象有三种选择模式,可以使用setSelectMode方法设置。改变选择模式的三个参数为:

SINGLE_SELECTION:单项选择。SINGLE_INTERVAL_SELECTION:选择连续的多项。

MULTIPLE_INTERVAL_SELECTION:选择不连续的多项。默认值为MULTIPLE_INTERVAL_SELECTION。JList的监听器是ListSelectionListener,要实现的方法是

valueChanged(ListSelectionEvent

e)如:public

void

valueChanged(ListSelectionEvent

e){

String

selectedItem=(String)jList.getSeletedValue();}6.4常用Swing组件的使用十、滚动条(JSlider)JSlider滑动条,用于明确的让用户从一个范围内选择一个值。使用的方式是让用户利用鼠标移动滑块。实滑动条的代码如下:JSlider

jSlider1

=

new

JSlider(SwingConstants.VERTICAL,

0,

100,0);JSlider

jSlider2

=

new

JSlider(SwingConstants.HORIZONTAL,

0,

100,20);//VERTICAL表示滑动条是垂直的;HORIZONTAL表示滑动条是水平的//第一个整型参数表示最小值,第二个表示最大值,第三个表示初始值。

contentPane.add(jSlider1);contentPane.add(jSlider2);光有滑动条是远远不够的,还要为它设置刻度,实现刻度的代码为:

jSlider1.setPaintTicks(true);jSlider1.setMajorTickSpacing(10);//主刻度标志

jSlider1.setMinorTickSpacing(5);//次刻度标志

jSlider2.setPaintTicks(true);jSlider2.setMajorTickSpacing(20);jSlider2.setMinorTickSpacing(10);添加滑动标签,以便显示主要刻度的数字值。其代码为:

jSlider1.setPaintLabels(true);jSlider2.setPaintLabels(true);6.4常用Swing组件的使用十一、对话框(JOptionPane)对话框是一种大小不能变化、不能有菜单的容器窗口。它不能作为一个应用程序的主框架,而必须包含在其他容器中。Java提供多种类型的对话框,在此介绍一个使用Swing工具实现对话框的方法,利用JOptionPane类创建对话框。系统提供了不同的对话框类型和样式。可以调用JOptionPane的静态方法显示各种类型对话框。showMessageDialog:消息对话框,向用户显示消息。showConfirmDialog:确认对话框,提问一个要求确认的问题,能够得到响应。showInputDialog:文本域输入对话框,提示用户输入。

showOptionDialog:组合框输入对话框,可配置的对话框。每一种对话框都可以使用一些JOptionPane常量,来确定对话框的样式。

消息对话框常用的表示对话框类型JOptionPane常量有:PLAIN_MESSAGE、ERROR_MESSAGE、INFORMATION_MESSAGE、WARNING_MESSAGE和QUESTION_MESSAGE。6.5图形界面中的用户自定义成分在Java中,框架是一个容器,可以将用户界面的元素和菜单放置其中,如果要在框架中绘制一些图形或文字,需要先创建一个面板(JPanel),先将图形或文字绘制在面板上,再将面板添加到框架中。通常的作法是:首先定义一个扩展于JPanel的类,在类中覆盖

paintComponent()方法并添加一些方法。6.5图形界面中的用户自定义成分1.绘制图形利用Graphics类的实例,可以调用Graphics类的图形绘制方法。读者可以任意绘制直线、矩形、多边形、圆和椭圆等。要绘制图形,首先要确定想绘制什么样的图形,然后决定使用哪一个方法。Graphics类中提供的常用方法有:画线方法drawLine(),画弧方法drawArc(),画矩形方法drawRect()以及画实心矩形方法fillRect(),画椭圆方法drawOval()以及画实心椭圆方法fillOval(),画圆角矩形方法drawRoundRect()以及画实心圆角矩形方法fillRoundRect(),画多边形方法drawPolygon()以及画实心多边形方法fillPolygon(),它们都有三个整形参数。其次要决定图形的坐标。容器左上角是默认的坐标原点(0,0),向右为X轴正方向,向下为Y轴正方向。然后要确定图形的大小。6.5图形界面中的用户自定义成分2.绘制文本在框架中显示文字的方法与绘制图形的方式类似,也需要先创建一个面板(JPanel),将文字绘制在面板上,再将面板添加到框架中。Graphics类的

drawString()方法可以在面板的指定位置显示字符串。drawString方法的一般格式:public

abstract

void

drawString(String

str,intx,int

y)作用:使用当前字体和颜色绘制由指定

string给定的文本。字符串显示的起始坐位置为(xy)。6.5图形界面中的用户自定义成分二、字体设置要设置GUI中组件或所画对象的字体,首先要用Font类中创建一个Fout对象,然后调用Font类中的方法,设置组件或所画对象的字体、字型和字号。用Font类来创建对象的语法格式为:Font

myFont=

new

Font(String

name,int

style,intsize)其中,name代表字体名,可以是宋体、楷体、黑体、Courier、Dialog等;

style代表字形,有三种选择:Font.BOLD表示加粗

Font.ITALIC表示斜体

Font.PLAIN表示普通三种字型可以组合,如:Font.BOLD+Font.ITALICsize代表字号,单位是point,如:Fontf=new

Font(“楷体”,Font.ITALIC,20);用setFont()方法设置组件或字符的字体。如:

Graphics

g;g.setFont(f);Button

btn=new

Button();btn.

setFont(f);6.5图形界面中的用户自定义成分三、颜色控制可以用Java.awt.Color类为GUI元素设置颜色,每个Color对象代表一种颜色,颜色由红、绿、蓝三原色构成,可以通过调配三种颜色的比例达到定制颜色的目的。三种颜色都是用

0~255(一个字节)之间的整数值表示。创建Color对象的构造方法格式为:Color(floatr,float

g,floatb);如:Color

color=new

Color(128,100,100);可以使用定义在Com

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论