圖形用戶界面_第1頁
圖形用戶界面_第2頁
圖形用戶界面_第3頁
圖形用戶界面_第4頁
圖形用戶界面_第5頁
已閱讀5頁,還剩66頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第11章圖形用戶界面lava

^11.1GUI組件簡介

b11.2程序框架

團11.3事件處理

-11.4布局管理器

行11.5基本Swing組件

^11.6高級Swing組件

^11.7習(xí)題

n.2程序框架lava

卡要創(chuàng)建一個圖形用戶界面,首先需要創(chuàng)

建一個特殊的窗口來容納用戶界面組件。

,Java語言中,這個特殊的窗口一般是一

個應(yīng)用程序框架或applet。

1121創(chuàng)建應(yīng)用程序框架

*JFram一的構(gòu)造方法:

-publicJFrame()

//創(chuàng)建一個沒有標題的框架

-publicJFrame(Stringtitle)

//創(chuàng)建一個帶有指定標題的框架

例11-1創(chuàng)建應(yīng)用程序框架

源代碼運行

11.2.2添加組件

例11-2添加組件

源代碼運行

例11-3直接調(diào)用方法add()添加組件

源代碼運行

11.3事件處理

-11.3.1事件和事件源

-11.3.2事件監(jiān)聽器

-11.3.3事件監(jiān)聽適配器

0

J■-J

11.3.1事件和事件源lava

n.3.1事件和事件源(續(xù))

JButton點擊按鈕ActionEv一nt

JT一xtFi一Id在文本域按回車鍵ActionEv一nt

JCh一ckBox點擊復(fù)選框ActionEv一nt、工t一mEv一nt

JRadioButton點擊單選按鈕ActionEv一nt、工tamEv一nt

JComboBox選定選項ActionEv一nt、工t一mEv一nt

JList選定選項ListSelactionEvant

JM一nu工t一m選定菜單項ActionEv一nt、工tamEv一nt

JSlid一r滑動滑塊Chang一Evant

Window窗口打開、關(guān)閉等WindowEv一nt

Component點擊或移動鼠標Mous一Ev一nt

Component按下或釋放鍵KeyEvent

Contain一r在容器中添加或刪除組件ContainerEvent

Component組件獲得或失去焦點FocusEvent

Component組件移動、改變大小等Compon一ntEv一nt

11.3.2事件監(jiān)聽器

用戶事件

觸發(fā)

通知

事件

操作

注冊

組件(事件源)監(jiān)聽器

11.3.2事件監(jiān)聽器(續(xù))

ActionEventActionListeneractionPerformed(ActionEvente)

addActionListener()

ItemEventItemListeneritemStateChanged(ItemEvente)

addltemListener()

MouseEventMouseListenermouseClicked(MouseEvente)

addMouseListener()mousePressed(MouseEvente)

mouseReleased(MouseEvente)

mouseEntered(MouseEvente)

mouseExited(MouseEvente)

MouseEventMouseMotionListenermouseDragged(MouseEvente)

addMouseMotionListener()mouseMoved(MouseEvente)

WindowEventWindowListenerwindowOpened(WindowEvente)

addWindowListener()windowClosing(WindowEvente)

windowClosed(WindowEvente)

windowlconified(WindowEvente)

windowDeiconified(WindowEvente)

windowActivated(WindowEvente)

windowDeactivated(WindowEvente)

ListSelectionEventListSelectionListenervalueChanged(ListSelectionEvente)

addListSelectionListener()

11.3.2事件監(jiān)聽器(續(xù))

例11-4動作事件處理

源代碼運行

例11-5使用匿名內(nèi)部類實現(xiàn)監(jiān)聽器接口

源代碼運行

0J■-J

11.3.3事件監(jiān)聽適配器lava

ComponentListenerComponentAdapter

ContainerListenerContainerAdapter

FocusListenerFocusAdapter

KeyListenerKeyAdapter

MouseListenerMouseAdapter

MouseMotionListenerMouseMotionAdapter

WindowListenerWindowAdapter

n.3.3事件監(jiān)聽適配器(續(xù))

卡適配器用空方法實現(xiàn)了相應(yīng)監(jiān)聽器接口

中的每個方法,因此程序中只需繼承相

應(yīng)適配器,并覆蓋必要的方法。

例11-6使用監(jiān)聽適配器

源代碼運行

11.4布局管理器

卡布局管理器控制組件在容器中的大小、

形狀和位置。

-每種容器都有自己默認的布局管理器O

11.4布局管理器(續(xù))

bBord一rLayout

^FlowLayout

^CardLayout

^GridLayout

^GridBagLayout

11.4.1BorderLayout

罰Bord一rLayout管理器將容器內(nèi)的空間戈U分為5

個區(qū)域:

-BorderLayout.EAST

-BorderLayout.WEST

-Bord一rLayout.SOUTH

-BorderLayout.NORTH

-Bord一rLayout.CENTER

其中,每個區(qū)域中最多只能容納一個組件。

11.4.1Bord一rLayout(續(xù))

,構(gòu)造方法:

一publicBord一rLayout()

//創(chuàng)建Bord一rLayout對象,組件之間沒有水平和垂直間。巨

-publicBord一rLayout(inthgap,intvgap)

〃以參數(shù)指定的水平和垂直間距創(chuàng)建Bord一rLayout對象

例11-7BorderLayout

源代碼運行

11.4.2FlowLayout

,構(gòu)造方法:

-publicFlowLayout()

//創(chuàng)建FlowLayout對象,對齊方式是默認的居中對齊,

//組件之間的水平和垂直間距都是默認的5個像素

-publicFlowLayout(intalign)

//以參數(shù)指定的對齊方式創(chuàng)建FlowLayout對象,組件之

//間的水平和垂直間距都是默認的5個像素

-publicFlowLayout(intalign,int

hgap,intvgap)

//以參數(shù)指定的對齊方式、水平和垂直間距創(chuàng)建

//FlowLayout對象

11.4.2FlowLayout(續(xù))

bFlowLayout管理器根據(jù)容器的組件排列方向?qū)傩?/p>

(Compon一ntOri一ntation),簡單地將容器中的

組件按添加的先后順序依次擺放(默認情況下是從左

到右),如果一行排滿,則在下一行中繼續(xù)。

例11-8FlowLayout

源代碼運行

例11-9設(shè)置容器的組件由卜列方向?qū)傩?/p>

源代碼運行

0

J■-J

11.4.3GridLayoutlava

-GridLayout管理器把容器的空間平均劃分為若干行

乘若干列的矩形網(wǎng)格,每一個網(wǎng)格中只能添加一個組

件。

,如果程序指定了劃分的具體非0行數(shù),編譯器將忽略指

定的具體列數(shù),實際列數(shù)將由指定的行數(shù)和實際的組

件數(shù)決定。只有在行數(shù)指定為0時,指定的列數(shù)才有實

際意義。不過,行數(shù)和列數(shù)不能同時指定為0,否則運

行時會引發(fā)異常。

11.4.3GridLayout(續(xù))

行構(gòu)造方法:

-publicGridLayout()

//創(chuàng)建GridLayout對象,每行中只有一列

-publicGridLayout(introwsrintcols)

//以參數(shù)指定的行數(shù)和歹4數(shù)創(chuàng)建GridLayout對象,組件之

//間的水平和垂直間距為0

-publicGridLayout(introws,int

colsAinthgapfintvgap)

//以參數(shù)指定的行數(shù)、列數(shù)以及組件之間的水平和垂直間距

//創(chuàng)建GridLayout對彖

例11-10GridLayout

源代碼運行

11.4.4CardLayout

①CardLayout將容器當作一個卡片盒,把添加到容器

中的每一個組件當作一張卡片,每次只有一張卡片是

4r見的。為獨桌個綃件向見,可以調(diào)用CardLayout

對象的如下方法:

-publicvoidfirst(Contain一rpar一nt)

-publicvoidn一xt(Containerpar一nt)

-publicvoidprevious(Contain一rpar一nt)

-publicvoidlast(Containerpar一nt)

-publicvoidshow(Containerpar一nt.

Stringnam一)

注意:上述方法中的參數(shù)parent必須是真正容納

組件的容器類對象,即它寸以是JFrame、JApplet

等的內(nèi)容窗格或JPanel等的對象,但不能直接接收

JFrame>JApplet等的對象。

11.4.4CardLayout(續(xù))

生將組件添加到CardLayout容器中時需調(diào)用

方法:

add(Compon一ntcomp,Stringname)

管CardLayout的構(gòu)造方法:

-publicCardLayout()

-publicCardLayout(inthgap,intvgap)

例11-11CardLayout

源代碼運行

11.5基本Swing組件

wll.5.1面板

斤11.5.2標簽與按鈕

斤11.5.3文本字段與文本區(qū)域

面1154復(fù)選框與單選按鈕

行11.5.5列表框與組合框

11.5.1面板lava

卡面板是用來容納組件的容器,它不能獨

立存在,只能添加到其他容器中。

口面板是JPan一1類的對象。

小面板的默認布局器是FlowLayout,它

可以直接容納組件。

例11-12面板

源代碼運行

11.5.2按鈕與標簽

JButton(按鈕)的構(gòu)造方法:

-publicJButton()

//創(chuàng)建一個沒有標記的空按鈕

-publicJButton(Iconicon)

//創(chuàng)建一個標有指定圖標的按鈕

-publicJButton(Stringt一xt)

〃創(chuàng)建一個標有指定文字的按鈕

-publicJButton(Stringt一xt,工conicon)

〃創(chuàng)建一個標有指定文字和圖標的按鈕

11.5.2按鈕與標簽(續(xù))

AbstractButton(JButton的父類):

publicvoidaddActionListener(ActionListener1)

publicIcongetlcon()

publicvoidseticon(Icondefaultlcon)

publicStringgetText()

publicvoidsetText(Stringtext)

publicvoidsetEnabled(booleanb)

publicvoidsetHorizontalAlignment(intalignment)

publicvoidsetverticalAlignment(intalignment)

publicvoidsetHorizontalTextPosition(int

textPosition)

publicvoids一tV一rticalTextPosition(int

textPosition)

11.5.2按鈕與標簽(續(xù))

b操作按鈕可以產(chǎn)生多種事件,不過程序

通常只需響應(yīng)點擊按鈕時產(chǎn)生的動作事

件(Activ一Ev一nt)。

11.5.2按鈕與標簽(續(xù))ava

JLabel(標簽)的構(gòu)造方法:

-publicJLab一1()

-publicJLabel(Iconimag一)

-publicJLab一1(Iconimag一,int

horizontaiAlignment)

-publicJLabel(Stringt一xt)

-publicJLabel(Stringt一xt,int

horizontalAlignment)

-publicJLabel(Stringt一xt,Icon

icon,inthorizontalAIignm一nt)

11.5.2按鈕與標簽(續(xù))lava

行標簽不會引發(fā)任何事件。

-程序中可以調(diào)用相應(yīng)的方法返回或設(shè)置標簽

上的文字或圖標、文字和圖標的對齊方式及

文字與圖標的相對位置等。

例11-13按鈕與標簽

源代碼運行

11.5.3文本字段與文本區(qū)域

-文本字段與文本區(qū)域都是允許用戶輸入

字符的區(qū)域。

行文本字段只允許用戶輸入一行字符,而

文本區(qū)域允許用戶輸入多行字符。

1153文本字段與文本區(qū)域(續(xù))

JTextField(文本字段)的構(gòu)造方法:

-publicJT一xtFi一ld()

//創(chuàng)建一個文本字段,初始字符串為空,列數(shù)為0

-publicJT一xtFi一Id(Stringt一xt)

//創(chuàng)建一個文本字段,初始字符串為text,列數(shù)為0

-publicJTextField(intcolumns)

//創(chuàng)建一個文本字段,初始字符串為空,列數(shù)為columns

-publicJT一xtFi一Id(Stringt一xt,int

columns)

//創(chuàng)建一個文本字段,初始字符串為text,列數(shù)為columns

1153文本字段與文本區(qū)域(續(xù))ava

JTextField:

publicvoidaddActionList一n一r(

ActionList一n一r1)

//注冊動作事件監(jiān)聽器

publicintg一tColumns()

〃返回文本字段的列數(shù)

publicvoids一tColumns(intcolumns)

//設(shè)置文本字段的列數(shù)

publicvoids一tFont(Fontf)

//設(shè)置文本字段中文字的字體

在文本字段中按回車鍵會引發(fā)ActionEv一nt

事件。

1153文本字段與文本區(qū)域(續(xù))ava

JTextArea(文本區(qū)域)的構(gòu)造方法:

-publicJT一xtAr一a()

//創(chuàng)建一個文本區(qū)域,初始字符串為空,行、列數(shù)為0

-publicJT一xtAr一a(Stringt一xt)

//創(chuàng)建一個文本區(qū)域,初始字符串為text,行、列數(shù)為0

-publicJTextArea(introwsrint

columns)

//創(chuàng)建一個文本區(qū)域,初始字符串為空,行數(shù)為rows,列

//數(shù)為columns

-publicJT一xtAr一a.(Stringt一xt,int

rows,intcolumns)

//創(chuàng)建一個文本區(qū)域,初始字符串為text,行數(shù)為rows,列

//數(shù)為columns

1153文本字段與文本區(qū)域(續(xù))

夕TextArea:

publicvoidappend(Stringstr)

//將字符串str添加到文本的尾部

publicvoidr一pla。一Rang一(String

str,intstart,intend)

//用字符串str替換文本中從start到end位置的字符

publicvoidinsert(Stringstrzint

pos)

//將字符串Str插入到文本中的指定位置pos

publicintg一tRows()

//返回文本區(qū)域的行數(shù)

publicvoids一tRows(introws)

//設(shè)置文本區(qū)域的行數(shù)

1153文本字段與文本區(qū)域(續(xù))

夕與文本字段不同,文本區(qū)域不會引發(fā)

ActionEv一nt事件。

例11.14文本字段與文本區(qū)域

源代碼運行

11.5.4復(fù)選框與單選按鈕

用復(fù)選框是一個很小的方框,方框旁邊可

以標有文字或圖標。它有兩種狀態(tài):被

選或未被選。用戶點擊某個復(fù)選框時,

該復(fù)選框會從一種狀態(tài)轉(zhuǎn)變?yōu)榱硪环N狀

o

1154復(fù)選框與單選按鈕(續(xù))

JCheckBox(復(fù)選框)的構(gòu)造方法:

-publicJCheckBox()

-publicJCheckBox(Iconicon)

-publicJCheckBox(Iconicon,bool一an

s一1一ct一d)

-publicJCh一ckBox(Stringt一xt)

一publicJCheckBox(Stringt一xt,bool一an

s一1一ct一d)

-publicJCheckBox(Stringt一xt,Icon

icon)

-publicJCheckBox(Stringt一xt,Icon

icon,boo工一ans一1一ct一d)

1154復(fù)選框與單選按鈕(續(xù))lava

復(fù)選框的狀態(tài)可以調(diào)用下述方法來獲取或設(shè)

定:

publicbool一anisS一1一ct一d()

publicvoids一tS一1一ct一d(bool一anb)

點擊復(fù)選框會引發(fā)Activ一Ev一nt和

工t一mEv一nt事件。

11-15復(fù)選框

源代碼運行

1154復(fù)選框與單選按鈕(續(xù))

卡單選按鈕是一個很小的圓,圓旁邊可以標有

文字或圖標。與復(fù)選框相同,每個單選按鈕

有兩種狀態(tài):被選或未被選。用戶點擊某個

單選按鈕時,該單選按鈕會從一種狀態(tài)轉(zhuǎn)變

為另一種狀態(tài)。與復(fù)選框不同的是,在某一

時刻同一組中的單選按鈕只有一個被選擇,

選擇某個單選按鈕時,同一組中的其他單選

按鈕都會變?yōu)槲幢贿x;而同一組中的復(fù)選框

同時可以有o個、1個或多個被選。

1154復(fù)選框與單選按鈕(續(xù))

罰JRadioButton(單選按鈕)的構(gòu)造方法:

-publicJRadioButton()

-publicJRadioButton(Iconicon)

-publicJRadioButton(Icon

icon,booleans一1一ct一d)

-publicJRadioButton(Stringt一xt)

-publicJRadioButton(String

text,booleans一工一ct一d)

-publicJRadioButton(Stringtext,Icon

icon)

-publicJRadioButton(Stringt一xt,Icon

icon,booI一anselected)

1154復(fù)選框與單選按鈕(續(xù))

團創(chuàng)建單選按鈕后,通常需要將它們歸屬到某

個組:

(1)首先倉Li建javax.swing.ButtonGroup類

的對象;

(2)調(diào)用ButtonGroup類中定義的方法

add(AbstractButtonb)將單選按鈕添力口至U該

對象中。

注意:添力口至1J同一ButtonGroup對象中的單選

按鈕屬于同一組,同時只能選擇其中之一。

1154復(fù)選框與單選按鈕(續(xù))

行點擊單選按鈕會弓I發(fā)Activ一Ev一nt和

工t一!nEv一nt事件。

例11-16單選按鈕

源代碼運行

11.5.5組合框與列表

卡組合框也稱下拉式列表,它是一些項目

的簡單列表。與單選按鈕類似,用戶可

以從中選擇一個。

11.5.5組合框與列表(續(xù))

罰JComboBox(組合框)的構(gòu)造方法:

-publicJComboBox()

//創(chuàng)建一個組合框,組合框中的選項為空

-publicJComboBox(Object[]items)

//創(chuàng)建一個組合框,組合框中的選項由參數(shù)it一ms指定

0

J■-J

n.5.5組合框與列表(續(xù))lava

-組合框中的選項可以調(diào)用下述方法添加或刪除:

publicvoidadd工t一m(Obj一ctanObject)

//在組合框中添加一個選項anObject

publicvoidr一mov一工t一m(Obj一ct

anObj一ct)

//在組合框中刪除參數(shù)anObject指定的選項

publicvoidr一mov一工t一mAt(intanlndex)

//在組合框中刪除序號為參數(shù)anlndex的選項

publicvoidr一mov一All工t一ms()

//刪除組合框中的所有選項

0

J■-J

n.5.5組合框與列表(續(xù))lava

卡調(diào)用下述方法可以獲取組合框中特定的

選項:

publicObjectg一t工t一mAt(intindex)

〃返回組合框中序號為參數(shù)index的選項

publicintg一tS一1一ct一d工nd一x()

〃返回組合框中被選擇的選項的序號

publicObj一ctg一tS一1一ct一d工t一m()

//返回組合框中被選擇的選項

11.5.5組合框與列表(續(xù))

b選定組合框中的選項會引發(fā)

例11-17組合框

源代碼運行

0

J■-J

n.5.5組合框與列表(續(xù))lava

卡列表允許用戶從中進行選擇。不過,它與組

合框的外觀不同:組合框只有在點擊它時才

會顯示下拉列表,而列表會在屏幕上持續(xù)占

用固定行數(shù)的空間。此外,列表還允許用戶

同時選擇多項:用戶在多個選項上同時按下

<Ctrl>鍵并點擊鼠標,就可以選擇任意多項,

如果選擇某個選項后,按下<Shift>鍵并同時

點擊另一個選項,那么兩個選項間的所有選

項都被選擇;如果想取消某個選項,只需按

下<Ctrl>鍵并同時點擊該項。

11.5.5組合框與列表(續(xù))

罰JList(列表)的構(gòu)造方法:

-publicJList()

//創(chuàng)建一個列表,列表中的選項為空

-publicJList(Object[]listData)

//創(chuàng)建一個列表,列表中的選項由參數(shù)listData指定

0

J■-J

n.5.5組合框與列表(續(xù))lava

-調(diào)用下述方法可以獲取列表中特定的選項或

設(shè)置可見行數(shù):

publicint[]g一tS一1一ct一d工ndi。一s()

//返回列表中所有被選擇的選項的序號

publicObj一ct口g一tS一1一ct一dValu一s()

//返回列表中所有被選擇的選項

publicvoids一tVisibl一RowCount(int

visib1一RowCount)

//設(shè)置列表中同時可見的行數(shù)為visibleRowCount,默認值

〃為8

11.5.5組合框與列表(續(xù))

b選定列表中的選項會引發(fā)

例11-18列表

源代碼運行

11.6高級Swing組件

年11.6.1菜單

團1L6.2彈出式菜單

-11.6.3滑塊與進度條

行11.6.4消息對話框

11.6.1菜單

*JM一nuBar

JM一nu

JM一nu工t■一m

審JCh一ckBoxM一nu工t一m

*JRadioButtonM一nu工t一m

11.6.1菜單(續(xù))lava

,實現(xiàn)菜單的過程:

1)創(chuàng)建菜單欄,并將它設(shè)置到某個容器中:

JM一nuBarmb=MwJMenuBar();

JFrameJFram一();

fram一.s一tJM一nuBar(mb);

11.6.1菜單(續(xù))lava

,實現(xiàn)菜單的過程:

2)創(chuàng)建菜單條,并將它們添加到菜單欄中:

JM一nufile]Ytenu=n,wJM一nu("文件”);

JM一nu一ditM一nu=newJM一nu("編輯”);

mb.add(fil一M一nu);

mb.add(一ditM一nu);

11.6.1菜單(續(xù))lava

,實現(xiàn)菜單的過程:

3)創(chuàng)建菜單項,并將它們添加到菜單條中:

JM一nu工t一m[]一ditm={

newJM一nu工t一m("剪切”),

newJM一nu工t一m("復(fù)制J"),

n一wJMenuItem("粘貝占”),

n一wJM一nu工t一m("全選”)};

for(inti=0;i—ditm.1一ngth;i++){

一ditM一nu.add(一ditm[i]);

if(i==2)

一ditM一nu,adds一parator();}

11.6.1菜單(續(xù))

bJCheckBoxMenuItem^O

JRadioButtonMenuItemtfe

甘JM一nu是JM一nu工t一m的子類,因止匕,菜單條組件

可以添加到另一個菜單條中,從而實現(xiàn)多重子菜

單。

11.6.1菜單(續(xù))

e選定菜單項組件會弓I發(fā)Activ一Ev一nt

和工t一mEv一nt等事件。

例11-19菜單

源代碼運行

n62彈出式菜單

卡彈出式菜單是一個小窗口,其中含有多

個菜單項。它通常用于和某個組件結(jié)合,

使該組件在某種條件下彈出一個菜單。

11.6.2彈出式菜單(續(xù))lava

JPopupM一nupopup=newJPopupM一nu();

JM一nu工t一m口popupm=MwJM一nu工t一m(“剪切”);

popup.add(popupm);

1162彈出式菜單(續(xù))

-彈出式菜單應(yīng)和某個組件結(jié)合,以使用戶在該組件上

按下鼠標右鍵時將它顯現(xiàn)出來。因此,程序應(yīng)該監(jiān)聽

希望能彈出菜單的組件的鼠標事件(MouseEvent)

并在相關(guān)方法中調(diào)用JPopupM一nu類中的下述方法將

彈出式菜單顯現(xiàn)出來:

publicvoidshow(Compon一ntinvok一r,intxfinty)

例11-20彈出式菜單

源代碼運行

n.6.3滑塊與進度條

卡滑塊允許用戶通過移動一個點的方式在

一定范圍內(nèi)輸入數(shù)據(jù)。

行進度條通常用來顯示某件工作完成的百

分比。

1163滑塊與進度條(續(xù))ava

罰JSlider(滑塊)的構(gòu)造方法:

-publicJSlider()

-publicJSlider(intorientation)

-publicJSlid一r(intmin,intmax)

-publicJSlid一r(intmin,intmax,int

value)

-publicJSlider(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論