翻译文献-在桌面应用程序中bean和数据的绑定_第1页
翻译文献-在桌面应用程序中bean和数据的绑定_第2页
翻译文献-在桌面应用程序中bean和数据的绑定_第3页
翻译文献-在桌面应用程序中bean和数据的绑定_第4页
翻译文献-在桌面应用程序中bean和数据的绑定_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

外文原文BINDINGBEANSANDDATAINADESKTOPAPPLICATIONTHISGUIDEISANINTRODUCTIONTOTHESUPPORTINNETBEANSIDE60FORBEANSBINDINGANDDATABINDINGINJAVADESKTOPAPPLICATIONSCONTENTSINTRODUCTIONBEANSBINDINGINNETBEANSIDE60BINDINGPROPERTIESTOOTHERPROPERTIESADVANCEDBINDINGPROPERTIESBINDINGDATATOCOMPONENTSSPECIALBINDINGPROPERTIESSOFTWAREANDFILESNEEDEDFORTHETUTORIALFORTHISTUTORIALYOUNEEDTOHAVETHEFOLLOWINGSOFTWAREINSTALLEDONYOURCOMPUTERNETBEANSIDE60DOWNLOADJAVASTANDARDDEVELOPMENTKITJDKVERSION50OR60DOWNLOADINTRODUCTIONBEANSBINDINGINNETBEANSIDE60UNTILTHERELEASEOFTHEBEANSBINDINGLIBRARY,ITWASSOMEWHATCUMBERSOMETOCONNECTUICOMPONENTSTODATABASESORTOKEEPVALUESOFCOMPONENTPROPERTIESINSYNCFOREXAMPLE,DISPLAYINGDATAFROMASTANDARDDATABASEINAJTABLEREQUIREDTHEMANUALCREATIONOFUTILITYCLASSESTOHANDLETHECONNECTIONBETWEENTHEDATABASEANDTHEJTABLEANDKEEPINGVALUESOFDIFFERENTBEANPROPERTIESINSYNCSUCHASTHEVALUEOFAJTEXTFIELDWITHTHERENDERINGOFAVISUALBEANREQUIREDHANDCODINGOFLISTENERSANDEVENTHANDLERSTHEBEANSBINDINGLIBRARYSIMPLIFIESANDSTANDARDIZESALLOFTHISYOUCANMERELYWRITEAFEWLINESOFCODETOESTABLISHWHICHPROPERTIESOFWHICHCOMPONENTSNEEDTOBEKEPTINSYNC,ANDTHEBEANSBINDINGLIBRARYHANDLESTHERESTINTHENETBEANSIDE,BEANSBINDINGFEATURESAREINTEGRATEDINTHEGUIBUILDER,SOYOUCANQUICKLYGETTHEBEHAVIOROFYOURAPPLICATIONCODEDSOONAFTERYOUHAVEESTABLISHEDTHEVISUALDESIGNTHISGUIDEISANOVERVIEWOFTHEMAINASPECTSOFBEANSBINDINGINTHEIDEFORACONCRETEEXAMPLEOFMANYOFTHESEFEATURES,YOUCANTRYTHEBUILDINGAJAVADESKTOPDATABASEAPPLICATIONTUTORIALBINDINGPROPERTIESTOOTHERPROPERTIESATITSMOSTBASIC,BEANSBINDINGISAWAYTOCONNECTBEANPROPERTIESWITHOUTUSINGEVENTLISTENINGANDHANDLINGCODETOILLUSTRATETHECONCEPTOFBEANSBINDINGANDHOWTHEIDESUPPORTSIT,WEWILLDOASIMPLEEXAMPLEWHEREAUSERCANADJUSTASLIDERTOCHANGEANUMERICALVALUEINATEXTFIELDTOSETUPTHEEXAMPLE1INTHEIDE,CHOOSE,FILENEWPROJECT2SELECTTHEJAVACATEGORYANDSELECTTHEJAVAAPPLICATIONTEMPLATECLICKNEXT3INTHENAMEANDLOCATIONPAGEOFTHEWIZARD,PERFORMTHEFOLLOWINGOPERATIONSOTYPENUMBERSLIDERASTHEPROJECTNAMEOLEAVETHESETASMAINPROJECTCHECKBOXSELECTEDOCLEARTHECREATEMAINCLASSCHECKBOX4CLICKFINISHTOEXITTHEWIZARDANDSETUPTHEPROJECT5INTHEPROJECTSWINDOW,RIGHTCLICKTHENUMBERSLIDERPROJECTNODEANDCHOOSENEWJFRAMEFORMIFJFRAMEFORMISNOTAVAILABLEINTHENEWMENU,CHOOSEOTHERTHENINTHENEWFILEWIZARD,SELECTTHESWINGGUIFORMSCATEGORYANDSELECTTHEJFRAMEFORMTEMPLATE6INTHENAMEANDLOCATIONPAGEOFTHEWIZARD,PERFORMTHEFOLLOWINGOPERATIONSOTYPENUMBERSLIDERFRAMEFORTHECLASSNAMEOTYPENUMBERSLIDERFORTHEPACKAGENAME7CLICKFINISHTOEXITTHEWIZARDANDCREATETHEFORMNUMBERSLIDERFORMJAVASHOULDOPENINDESIGNMODEINTHEEDITINGAREA8FROMTHESWINGCONTROLSSECTIONOFTHEPALETTE,DRAGASLIDERCOMPONENTINTOTHEDESIGNAREAIFTHEPALETTEWINDOWISNOTOPEN,CHOOSEWINDOWPALETTE9FROMTHEPALETTE,DRAGATEXTFIELDCOMPONENTTOTHEDESIGNAREATHERESULTINGFORMMIGHTLOOKSOMETHINGLIKETHESCREENSHOTBELOWHOWEVER,POSITIONINGISNOTIMPORTANTFORPURPOSESOFTHISEXAMPLESOURCEANDTARGETNOWTHATWEHAVESETUPTHEEXAMPLE,WEAREREADYTOCREATETHEBINDINGHOWEVER,FIRSTWENEEDTODETERMINEWHICHCOMPONENTWILLBETHESOURCEOFTHEBINDINGANDWHICHWILLBETHETARGETTHEBINDINGSOURCECOMPONENTISWHEREAVALUEFORTHEPROPERTYFIRSTORIGINATESWHENBINDINGINTHEGUIEDITOR,YOUINITIATEABINDINGONTHETARGETANDTHENYOUDECLARETHESOURCEINTHEBINDDIALOGBOXINTHISCASE,SINCETHEJSLIDERCOMESWITHADEFAULTRANGEOFVALUES,WEWILLUSEITASTHESOURCENOTEBINDINGSCANBETWOWAYREAD/WRITE,SOTHATCHANGESINTHETARGETAREAUTOMATICALLYREFLECTEDINTHESOURCEHOWEVER,THEDIRECTIONOFTHEINITIALBINDINGISALWAYSFROMTHESOURCETOTHETARGETSEETHEINFORMATIONONUPDATEMODEINTHEADVANCEDBINDINGCONFIGURATIONSECTIONTOBINDTHESLIDERTOTHETEXTFIELD1RIGHTCLICKTHETEXTFIELDCOMPONENTANDCHOOSEBINDTEXTTOOPENTHEBINDDIALOGBOX2FROMTHEBINDINGSOURCECOMBOBOX,SELECTJSLIDER13FROMTHEBINDINGEXPRESSIONCOMBOBOX,SELECTVALUEINTASSHOWNINTHEIMAGEBELOW4CLICKOKYOUHAVEJUSTBOUNDTHEVALUEBEANPROPERTYOFTHESLIDERTOTHETEXTVALUEOFTHETEXTFIELDINTHEDESIGNAREA,THETEXTFIELDSHOULDSHOWTHEVALUE50THISVALUEREFLECTSTHEFACTTHATTHESLIDERISINTHEMIDDLEPOSITIONANDTHEDEFAULTRANGEOFVALUESFORTHESLIDERISFROM0TO100YOUCANNOWRUNTHEAPPLICATIONANDSEETHEBINDINGINACTIONTORUNTHEPROJECT1CHOOSERUNRUNMAINPROJECT2INTHERUNPROJECTDIALOGBOX,CLICKOKTOACCEPTNUMBERSLIDERNUMBERSLIDERFORMASTHEMAINCLASSTHEAPPLICATIONSSHOULDSTARTINASEPARATEWINDOWADJUSTTHESLIDERINTHERUNNINGAPPLICATIONANDWATCHTHEVALUECHANGEINTHETEXTFIELDADVANCEDBINDINGCONFIGURATIONTHEEXAMPLEABOVESHOWSASTRAIGHTFORWARDBINDINGWITHSOMEDEFAULTBEHAVIORSBUTSOMETIMESYOUMIGHTWANTORNEEDTOCONFIGUREYOURBINDINGDIFFERENTLYIFTHATISTHECASE,YOUCANUSETHEADVANCEDTABOFTHEBINDINGDIALOGBOXTHEADVANCEDTABOFTHEDIALOGBOXCONTAINSTHEFOLLOWINGFIELDSNAMEENABLESYOUTOCREATEANAMEFORTHEBINDING,WHICHGIVESYOUMOREFLEXIBILITYFORMANAGINGYOURBINDINGSTHENAMEISADDEDTOTHECONSTRUCTOROFTHEBINDINGANDCANBEREFERENCEDWITHTHEBINDINGSGETNAMEMETHODUPDATEMODESPECIFIESTHEWAYTHATTHEPROPERTIESAREKEPTSYNCHRONIZEDTHEPOSSIBLEVALUESAREOALWAYSSYNCREAD/WRITEWHENEVERACHANGEISMADETOEITHERTHESOURCEORTHETARGET,THEOTHERISUPDATEDOONLYREADFROMSOURCEREADONLYTHETARGETISONLYUPDATEDTHEFIRSTTIMETHESOURCEVALUEISSETCHANGESTHATAREMADETOTHESOURCEAREUPDATEDINTHETARGETCHANGESMADETOTHETARGETARENOTUPDATEDINTHESOURCEOREADFROMSOURCEONCEREADONCETHETARGETISONLYUPDATEDWHENTHETARGETANDSOURCEAREINITIALLYBOUNDUPDATESOURCEWHENAVAILABLEONLYTOTHETEXTPROPERTYOFJTEXTFIELDANDJTEXTAREACOMPONENTSENABLESYOUTOSELECTTHEFREQUENCYWITHWHICHTHEPROPERTIESARESYNCHRONIZEDIGNOREADJUSTINGAVAILABLETOTHEVALUEPROPERTYOFJSLIDERTOTHESELECTEDELEMENTPROPERTYOFJTABLEANDJLISTANDTOTHESELECTEDELEMENTSPROPERTYOFJTABLEANDJLISTIFTHISCHECKBOXISSELECTED,ANYCHANGESMADETOONEPROPERTYARENOTPROPAGATEDTOTHEOTHERPROPERTYUNTILTHEUSERISFINISHEDMAKINGTHECHANGEFOREXAMPLE,WHENTHEAPPLICATIONSUSERDRAGSASLIDER,THEVALUEOFTHEPROPERTYTOWHICHTHESLIDERSVALUEPROPERTYISBOUNDISONLYUPDATEDONCETHEUSERRELEASESTHEMOUSEBUTTONCONVERTERIFYOURBINDINGINVOLVESPROPERTIESWITHDIFFERENTDATATYPES,YOUCANSPECIFYCODETHATCONVERTSVALUESBETWEENTHETYPESTHEBEANSBINDINGLIBRARYHANDLESMANYCOMMONLYNEEDEDCONVERSIONS,BUTYOUMIGHTNEEDTOPROVIDEYOUROWNCONVERTERSFOROTHERCOMBINATIONSOFPROPERTYTYPESSUCHCONVERTERSNEEDTOEXTENDTHEORGJDESKTOPBEANSBINDINGCONVERTERCLASSTHECONVERTERDROPDOWNLISTISPOPULATEDWITHANYCONVERTERSTHATHAVEBEENADDEDASBEANSTOYOURFORMYOUCANALSOADDTHECONVERSIONCODEDIRECTLYBYCLICKINGTHEELLIPSISBUTTON,ANDSELECTINGCUSTOMCODEFROMTHESELECTCONVERTERPROPERTYUSINGDROPDOWNLISTVALIDATORENABLESYOUTOSPECIFYCODETOVALIDATEACHANGEINTHETARGETPROPERTYVALUEBEFOREPROPAGATINGTHATCHANGEBACKTOTHESOURCEPROPERTYFOREXAMPLE,YOUCANUSEAVALIDATORTOMAKESURETHATANINTEGERPROPERTYVALUEISWITHINASPECIFICRANGEVALIDATORSNEEDTOEXTENDTHEORGJDESKTOPBEANSBINDINGVALIDATORCLASSTHEVALIDATORDROPDOWNLISTISPOPULATEDWITHANYVALIDATORSTHATHAVEBEENADDEDASBEANSTOYOURFORMYOUCANALSOADDTHEVALIDATIONCODEDIRECTLYBYCLICKINGTHEELLIPSISBUTTON,ANDSELECTINGCUSTOMCODEFROMTHESELECTVALIDATORPROPERTYUSINGDROPDOWNLISTNULLSOURCEVALUEENABLESYOUTOSPECIFYADIFFERENTVALUETOUSEIFTHESOURCEPROPERTYHASANULLVALUEWHENTHEBINDINGISATTEMPTEDTHISFIELDCORRESPONDSWITHTHESETSOURCENULLVALUEMETHODOFTHEORGJDESKTOPBEANSBINDINGBINDINGCLASSUNREADABLESOURCEVALUEENABLESYOUTOSPECIFYADIFFERENTVALUETOUSEIFTHEBINDINGEXPRESSIONCANNOTBERESOLVEDWHENTHEBINDINGISATTEMPTEDTHISFIELDCORRESPONDSWITHTHESETSOURCEUNREADABLEVALUEMETHODOFTHEORGJDESKTOPBEANSBINDINGBINDINGCLASSNOTETOBETTERUNDERSTANDTHECLASSESANDMETHODSMENTIONEDABOVE,YOUCANACCESSTHEBEANSBINDINGJAVADOCDOCUMENTATIONDIRECTLYFROMTHEIDECHOOSEHELPJAVADOCREFERENCESBEANSBINDINGINTHEBROWSERWINDOWTHATOPENS,CLICKTHEORGJDESKTOPBEANSBINDINGLINKTOACCESSDOCUMENTATIONFORTHOSECLASSESBINDINGDATATOCOMPONENTSONCEYOUHAVECREATEDANEWJAVAFORMANDADDEDCOMPONENTSTOTHEFORM,YOUCANGENERATECODETOBINDTHOSECOMPONENTSTODATATHEIDEMAKESITEASYTOBINDDATATOSWINGJTABLE,JLIST,ANDJCOMBOBOXCOMPONENTSBEFOREBINDINGACOMPONENTTODATAFROMADATABASE,YOUNEEDTOHAVEDONETHEFOLLOWINGTHINGSCONNECTEDTOADATABASEINTHEIDEADDEDTHECOMPONENTTOAFORMINTHEGUIBUILDERCREATEDCLASSESTHATREPRESENTTHEDATABASETABLESTOWHICHYOUWANTTOBINDSTEPSONCREATINGTHEENTITYCLASSESFORBINDINGDATATOACOMPONENTAREGIVENBELOWCREATINGENTITYCLASSESTOCREATEENTITYCLASSESTOREPRESENTTHEDATABASETHATISTOBEBOUNDTOTHEJTABLE1INTHEPROJECTSWINDOW,RIGHTCLICKYOURPROJECTANDCHOOSENEWOTHER,SELECTTHEPERSISTENCECATEGORY,ANDSELECTTHEENTITYCLASSESFROMDATABASETEMPLATE2INTHEDATABASETABLESPAGEOFTHEWIZARD,SELECTTHEDATABASECONNECTION3ONCETHEAVAILABLETABLESCOLUMNISPOPULATED,SELECTTHETABLESTHATYOUWANTTOUSEINYOURAPPLICATIONANDCLICKADDTOMOVETHEMTOTHESELECTEDTABLESCOLUMNCLICKNEXT4INTHEENTITYCLASSESPAGEOFTHEWIZARD,MAKESURETHEGENERATENAMEDQUERYANNOTATIONSFORPERSISTENTFIELDSDIALOGBOXISSELECTED5MAKEANYCUSTOMIZATIONSTHATYOUWANTTOMAKETOTHENAMESOFTHEGENERATEDCLASSESANDTHEIRLOCATION6CLICKCREATEPERSISTENCEUNIT7INTHECREATEPERSISTENCEUNITDIALOGBOX,MAKESUREOFTHEFOLLOWINGTHINGSOTHATTHESELECTEDPERSISTENCELIBRARYISTOPLINKOTHATTHESELECTEDTABLEGENERATIONSTRATEGYIS“NONE“8CLICKFINISHYOUSHOULDSEENODESFORTHEENTITYCLASSESINTHEPROJECTSWINDOWBINDINGCOMPONENTSTOTHEBEANSTHATREPRESENTTHEDATATOBINDTHEDATATOAJTABLECOMPONENT1RIGHTCLICKTHECOMPONENTINTHEGUIBUILDERANDCHOOSEBINDELEMENTS2CLICKIMPORTDATATOFORMFROMTHEIMPORTDATATOFORMDIALOGBOX,SELECTTHEDATABASETABLETOWHICHYOUWANTTOBINDYOURCOMPONENTSCLICKOK3FROMTHEBINDINGSOURCECOMBOBOX,SELECTTHEITEMTHATREPRESENTSTHERESULTLISTOFTHEENTITYCLASSFOREXAMPLE,IFTHEENTITYCLASSISCALLED,CUSTOMERJAVA,THELISTOBJECTWOULDBEGENERATEDASCUSTOMERLIST4LEAVETHEBINDINGEXPRESSIONVALUEASNULL5IFTHEREAREANYDATABASECOLUMNSTHATYOUWANTTOAPPEARINTHEJTABLE,SELECTTHOSECOLUMNSINTHESELECTEDLISTANDMOVETHEMTOTHEAVAILABLELIST6SELECTTHEADVANCEDTABTOFURTHERCONFIGURETHEBINDINGFOREXAMPLE,YOUCANSPECIFYAVALIDATORORCONVERTER,ORYOUCANSPECIFYBEHAVIORIFTHEBINDINGSOURCEISNULLORUNREADABLE7CLICKOKTOBINDTHEDATATOAJLISTCOMPONENT1RIGHTCLICKTHECOMPONENTINTHEGUIBUILDERANDCHOOSEBINDELEMENTS2CLICKIMPORTDATATOFORMFROMTHEIMPORTDATATOFORMDIALOGBOX,SELECTTHEDATABASETABLETOWHICHYOUWANTTOBINDYOURCOMPONENTSCLICKOK3FROMTHEBINDINGSOURCECOMBOBOX,SELECTTHEITEMTHATREPRESENTSTHERESULTLISTOFTHEENTITYCLASSFOREXAMPLE,IFTHEENTITYCLASSISCALLED,CUSTOMERJAVA,THELISTOBJECTWOULDBEGENERATEDASCUSTOMERLIST4LEAVETHEBINDINGEXPRESSIONVALUEASNULL5INTHEDISPLAYEXPRESSIONDROPDOWNLIST,SELECTTHEPROPERTYTHATREPRESENTSTHEDATABASECOLUMNTHATCONTAINSTHEVALUESTHATYOUWANTTODISPLAYINTHELIST6SELECTTHEADVANCEDTABTOFURTHERCONFIGURETHEBINDING7CLICKOKNOTEYOUCANALSOUSETHENEWJAVADESKTOPAPPLICATIONWIZARDTOQUICKLYCREATEAWHOLEWORKINGAPPLICATIONTHATHASCRUDCREATE,READ,UPDATE,ANDDELETEFEATURESHOWEVER,ITISBETTERTOGENERATEALLTHEENTITYCLASSESINADVANCETOENSURETHATALLRELATIONSAMONGTHEENTITIESARECORRECTLYCOVEREDBYTHEGENERATEDCLASSESSPECIALBINDINGPROPERTIESWHERENECESSARY,THEBEANSBINDINGLIBRARYPROVIDESSPECIALSYNTHETICPROPERTIESFORSOMESWINGCOMPONENTSTHATAREMISSINGFROMTHECOMPONENTSTHEMSELVESTHESEPROPERTIESREPRESENTTHINGS,SUCHASATABLESSELECTEDROW,THATAREUSEFULTOBINDTOOTHERPROPERTIESBELOWISALISTOFTHESYNTHETICPROPERTIESADDEDBYTHEBEANSBINDINGLIBRARIESCOMPONENTPROPERTYDESCRIPTIONABSTRACTBUTTONSELECTEDTHESELECTEDSTATEOFABUTTONJCOMBOBOXSELECTEDITEMTHESELECTEDITEMOFAJCOMBOBOXVALUETHEVALUEOFAJSLIDERNOTIFIESOFALLCHANGESJSLIDERVALUE_IGNORE_ADJUSTINGSAMEAS“VALUE“BUTDOESNOTNOTIFYOFCHANGEWHILETHESLIDERISADJUSTINGITSVALUESELECTEDELEMENTTHESELECTEDELEMENTOFAJLISTNOTIFIESOFALLCHANGESIFTHEREISAJLISTBINDINGWITHTHEJLISTASTHETARGET,THESELECTEDELEMENTISREPORTEDASANELEMENTFROMTHEBINDINGSSOURCELISTOTHERWISE,THESELECTEDELEMENTISREPORTEDASANOBJECTFROMTHELISTSMODELIFNOTHINGISSELECTED,THEPROPERTYEVALUATESTONULLSELECTEDELEMENTSALISTCONTAININGTHESELECTEDELEMENTSOFAJLISTNOTIFIESOFALLCHANGESIFTHEREISAJLISTBINDINGWITHTHEJLISTASTHETARGET,THESELECTEDELEMENTSAREREPORTEDASELEMENTSFROMTHEBINDINGSSOURCELISTOTHERWISE,THESELECTEDELEMENTSAREREPORTEDASOBJECTSFROMTHELISTSMODELIFNOTHINGISSELECTED,THEPROPERTYEVALUATESTOANEMPTYLISTJLISTSELECTEDELEMENT_IGNORE_ADJUSTINGSAMEAS“SELECTEDELEMENT“BUTDOESNOTNOTIFYOFCHANGEWHILETHELISTSELECTIONISBEINGUPDATEDSELECTEDELEMENTS_IGNORE_ADJUSTINGSAMEAS“SELECTEDELEMENTS“BUTDOESNOTNOTIFYOFCHANGEWHILETHELISTSELECTIONISBEINGUPDATEDSELECTEDELEMENTTHESELECTEDELEMENTOFAJTABLENOTIFIESOFALLCHANGESIFTHEREISAJTABLEBINDINGWITHTHEJTABLEASTHETARGET,THESELECTEDELEMENTISREPORTEDASANELEMENTFROMTHEBINDINGSSOURCELISTOTHERWISE,THESELECTEDELEMENTISREPORTEDASAMAPWHERETHEKEYSARECOMPOSEDOFTHESTRING“COLUMN“PLUSTHECOLUMNINDEXANDTHEVALUESARETHEMODELVALUESFORTHATCOLUMNEXAMPLECOLUMN0COLUMN0VALUE,COLUMN1COLUMN1VALUE,IFNOTHINGISSELECTED,THEPROPERTYEVALUATESTONULLJTABLESELECTEDELEMENTSALISTCONTAININGTHESELECTEDELEMENTSOFAJTABLENOTIFIESOFALLCHANGESIFTHEREISAJTABLEBINDINGWITHTHEJTABLEASTHETARGET,THESELECTEDELEMENTSAREREPORTEDASELEMENTSFROMTHEBINDINGSSOURCELISTOTHERWISE,EACHSELECTEDELEMENTISREPORTEDASAMAPWHERETHEKEYSARECOMPOSEDOFTHESTRING“COLUMN“PLUSTHECOLUMNINDEXANDTHEVALUESARETHEMODELVALUESFORTHATCOLUMNEXAMPLECOLUMN0COLUMN0VALUE,COLUMN1COLUMN1VALUE,IFNOTHINGISSELECTED,THEPROPERTYEVALUATESTOANEMPTYLISTSELECTEDELEMENT_IGNORE_ADJUSTINGSAMEAS“SELECTEDELEMENT“BUTDOESNOTIFYOFCHANGEWHILETHETABLESELECTIONISBEINGUPDATEDSELECTEDELEMENTS_IGNORE_ADJUSTINGSAMEAS“SELECTEDELEMENTS“BUTDOESNOTNOTIFYOFCHANGEWHILETHETABLESELECTIONISBEINGUPDATEDTEXTTHETEXTPROPERTYOFAJTEXTCOMPONENTNOTIFIESOFALLCHANGESINCLUDINGTYPINGJTEXTCOMPONENTINCLUDINGITSSUBCLASSESJTEXTFIELD,JTEXTAREA,ANDJEDITORPANETEXT_ON_FOCUS_LOSTTHETEXTPROPERTYOFAJTEXTCOMPONENTNOTIFIESOFCHANGEONLYWHENFOCUSISLOSTONTHECOMPONENTTEXT_ON_ACTION_OR_FOCUS_LOSTTHETEXTPROPERTYOFAJTEXTCOMPONENTNOTIFIESOFCHANGEONLYWHENTHECOMPONENTNOTIFIESOFACTIONPERFORMEDORWHENFOCUSISLOSTONTHECOMPONENT中文翻译在桌面应用程序中BEAN和数据的绑定这个向导是一个在JAVA桌面应用程序中对于NETBEANSIDE60中支持BEAN绑定以及数据绑定的介绍。内容介绍在NETBEANSIDE60中BEAN的绑定绑定属性到其它属性高级的绑定属性绑定数据到组件特殊的绑定属性指南中需求的软件和文件在这个指南里你需要拥有下面的软件安装在你的电脑中NETBEANSIDE60(下载)JAVASTANDARDDEVELOPMENTKITJDK版本50或者60(下载)介绍在NETBEANSIDE60中BEAN的绑定直到BEAN绑定库(BEANSBINDINGLIBRARY)的发布之前,将UI组件同数据库相连或者在同步中保持组件属性的值都是有点麻烦的。例如,在一个JTABLE中从标准数据库里显示数据需要手动创造的有效类去处理数据库和JTABLE的连接。还有在同步中保持不同BEAN属性的值(如用可视的BEAN来表现JTEXTFIELD的值)需要手动编码的监听者和事件处理者。BEAN绑定库简单化和标准化了所有的这些。你仅仅写少数几行代码就可以建立一些需要保持同步的组件的属性,BEAN绑定库会对剩下的进行处理。在NETBEANSIDE中,BEAN绑定的特征都集成在GUIBUILDER里,所以在你建立完视觉设计得不久之后你可以快速地获得你的应用程序编码的行为。这个向导是对于在IDE中主要方面BEAN绑定的综述。对于这些特征的一些具体的示例你可以参阅建立JAVA桌面应用程序指南(BUILDINGAJAVADESKTOPDATABASEAPPLICATIONTUTORIAL)。绑定属性到其它属性从它最基本的来说,BEAN绑定是不需使用时间监听器和手动编码而连接BEAN属性的一种方法。要举例说明BEAN绑定的概念以及IDE是怎样支持它的,我们会做一个简单的例子让一个用户在一个文本域里通过调试一个SLIDER来改变一个数字的值。设置这个示例1在IDE中,选择,文件新建工程。2选择JAVA目录再选择JAVA应用程序模板,点击下一步。3在向导的命名和位置页面,按照下面的操作执行输入NUMBERSLIDER作为工程的名字。让“设为主工程”这个复选框处于选中状态。清除“创建MAIN类”这个复选框的选项。(图略)4点击完成退出向导以建立工程。5在工程窗口鼠标右键点击NUMBERSLIDER工程节点选择新建JFRAMEFORM。(在新建这个菜单中如果没有JFRAMEFORM,则选择其它。然后在新建文件向导中选择SWINGGUIFORMS目录再选择JFRAMEFORM模板。)6在向导的命名和位置页面,按照下面的操作执行输入NUMBERSLIDERFRAME作为类的名字。输入NUMBERSLIDER作为包的名字。(图略)7点击完成退出向导以创建表单。这时NUMBERSLIDERFORMJAVA这个文件应该在编辑区域的设计模式中打开。8在画板的“SWING控制”这个部分拖一个SLIDER组件到设计区域。(如果画板窗口没有打开,选择窗口画板。)9在画板中拖一个“文本域”组件到设计区域。作为结果的表格看起来可能会有点像下方的屏幕焦点。然而布局对于这个示例的目的来说并不重要。(图略)源和目标既然我们已经建立完这个示例,我们已经准备好了创建绑定。然而,首先我们需要决定哪一个组件会是绑定的源,哪一个会是目标。绑定源组件是一个属性值的第一次产生。当在GUIEDITOR中实现绑定的时候,你开始在目标上绑定然后你在绑定对话框中声明源。既然这样,以后我们会用JSLIDER和一个默认范围的值一起作为源。注意绑定可以是双向的(读/写),所以目标的变化会自动地影响源。然而,初始化绑定的方向通常来源于目标的源。参见高级绑定配置部分(ADVANCEDBINDINGCONFIGURATIONSECTION)中更新模式的信息。绑定SLIDER到文本域1鼠标右键点击文本域组件选择绑定文本打开绑定对话框。2在绑定源组合框中选择JSLIDER1。3在绑定描述组合框中选择VALUEINT作为下方图标的显示。(图略)4点击确定。你刚才已经将SLIDER中VALUE这个BEAN的属性赋到了SLIDER里文本域的TEXT的值上。在设计域,文本域显示的值会是50。这个值反映了SLIDER是在中间位置,还有SLIDER默认范围的值是从0到100这样一个事实。你现在运行应用程序就可以看到绑定在运转。运行工程1选择运行运行主工程。2在运行程序对话框中点击确定来让NUMBERSLIDERNUMBERSLIDERFORM作为主类。应用程序应该在独立的窗口运行。在正在运行的应用程序中调试SLIDER,观察文本域值的变化。(图略)高级绑定配置上面的示例展示了一个用一些默认行为来直接绑定。但是有些时候你可能想要或者需要让你的绑定的配置有所不同。如果那样的话,你可以用绑定对话框里的高级制表符。绑定对话框里的高级制表符包含了如下的领域命名。使你能够为绑定创建一个名字,这给了你更多的弹性去管理你的绑定。这个名字会被添加到绑定的构造器中还可以被关联到绑定的GETNAME()方法中。更新模式。详细说明属性是怎样保持同步的。可能的值如下始终同步(读/写)。只要源或者目标一方发生改变,另一方都会更新。只从源中读(只读)。目标只是在当第一次设定源的值的时候更新一次。发生在源中的改变会更新到目标中,而目标里的改变不会更新到源中。从源中只读一次(只读一次)。目标只是当目标与源初始赋值的时候更新一次。更新源当(只有JTEXTFIELD和JTEXTAREA组件的TEXT属性可用的时候)。使你可以选择属性同步的频率。忽略调试(使JSLIDER的VALUE属性、JTABLE和JLIST中SELECTEDELEMENT和SELECTEDELEMENTS属性可用)。如果这个复选框是选中的则属性中发生的所有改变都不会传到另一个属性直到用户完成了更改。例如,当应用程序的用户拖动一个SLIDER的时候,被赋值的SLIDER的VALUE属性的属性值只有当用户放开鼠标按键的时候更新一次。转换器。如果你的绑定包括了不同数据类型的属性你可以指定类型间值转换的代码。BEAN绑定库处理了许多其中常规需要的转换,但是为了其它的一些属性类型你可能需要提供你自己的转换器。这样的转换器需要继承ORGJDESKTOPBEANSBINDINGCONVERTER这个类。转换器的下拉列表会列出任何已经被作为BEAN添加到你的表格中的转换器。你也可以点击“省略号”()按钮来直接添加转换代码,在“选择用到的转换器属性”下拉菜单中选择“自定义代码”。验证器。使你可以在把改变传回源属性前指定代码来验证在目标属性值上的一个改变。例如,你可以用一个验证器来确保一个整型的属性值在一个特定的区间内。验证器需要继承ORGJDESKTOPBEANSBINDINGVALIDATOR这个类。验证器的下拉列表会列出任何已经被作为BEAN添加到你的表单中的验证器。你也可以点击“省略号”()按钮来直接添加验证代码,在“选择用到的验证器属性”下拉菜单中选择“自定义代码”。空源值。当试图绑定的时候如果源属性有一个NULL值,可以使你指定一个不同的值去使用。与之相应的是ORGJDESKTOPBEANSBINDINGBINDING类中的SETSOURCENULLVALUE方法。不可读源值。当试图绑定的时候如果绑定语句不能被解析,可以使你指定一个不同的值去使用。与之相应的是ORGJDESKTOPBEANSBINDINGBINDING类中的SETSOURCEUNREADABLEVALUE方法。注意为了更好的理解以上提到的类和方法你可以直接从IDE中访问BEAN绑定JAVA文档这个文件。选择帮助相关JAVA文档BEAN绑定。在打开的浏览窗口中点击ORGJDESKTOPBEANSBINDING来链接到那些类的访问文件。绑定数据到组件一旦你已经创建了一个JAVA表单并添加了组件到其中,你可以编写代码去绑定那些组件到数据上。IDE使得绑定数据到SWINGJTABLE、JLIST和JCOMBOBOX组件很简单。在从数据库绑定一个组件到数据之前,你需要完成如下一些事情在IDE中连接数据库。在GUIBUILDER中把组件添加到表单。创建你想绑定的表现数据库表格的类。创建绑定数据到组件实体类的步骤如下。创建实体类要创建实体类来表现数据库就一定要用JTABLE1在工程窗口,鼠标右键点击你的工程选择新建其它,选择“持久化”目录再从数据库模板中选择“实体类”。2在向导的数据库表格页面中,选择数据库连接。3一旦弹出“可用的表格”列,选择在你的应用程序中你想用的表格,点击“添加”来讲它们移动到“选中的表格”列。点击下一步。(图略)4在向导的“实体类”页面中,确保选中“为持久化域产生命名查询注释”对话框。5自定义所有你想对它做的生成类和位置的名字。(图略)6点击“创建持久单元”。7在创建持久单元对话框中确保如下事情选中的持久库是TOPLINK。选中的表格产生策略是“无”。(图略)8点击完成。你应该可以在工程窗口看见实体类的节点。绑定组件到BEAN来表现数据绑定数据到JTABLE组件1鼠标右键点击GUIBUILDER中的组件,选择绑定元素。2点击“导入数据到表单”。从“导入数据到表单”对话框中选择你想绑定组件的数据库表格。点击确定。3在“绑定源”组合框中,选择表现实体类的结果列表项。例如,如果实体类叫CUSTOMERJAVA,列表对象就应该叫CUSTOMERLIST。4让绑定表达式的值为NULL

温馨提示

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

评论

0/150

提交评论