|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
其实产生见解的过程就是训练自己发现问题,分析问题的能力。根据以上的认识我想谈下传统的学习与通过视频独立学习的优缺点:
在Java结构办理器方面,最新增添了SpringLayout办理器,它是与Java1.4一同公布的。这类结构办理器同意您将“spring”附加到组件上,如许组件就能够相对其他组件举行结构。比方,使用SpringLayout您可让一个按钮依靠于右侧框来举行显现,而不论用户将屏幕宽度设为多年夜。
入手下手利用SpringLayout
与一切结构办理器一样,SpringLayout办理器卖力布置组件的地位。组件的地位是经由过程为之供应相干联的束缚来举行把持的。关于SpringLayout把持的组件,有一个带有4个设置值的束缚--每一个设置值对应于组件的每条边。SpringLayout办理器依附一个SpringLayout.Constraints对象来供应这些组件束缚。这与GridBagConstraints类的事情道理有点相似,GridBagConstraints类增补了GridBagLayout办理器:每一个增加到容器中的组件都能够有一个依靠在其上的SpringLayout.Constraints对象。不外,二者的类似的地方仅此罢了。
在利用GridBagLayout的时分,您一般的做法是利用束缚将组件增加到容器中。在利用SpringLayout办理器的情形下,您一般不用利用束缚来增加组件。相反,您能够间接增加组件,然后再分离地为之附加束缚。除SpringLayout外,没有甚么能够制止您为组件增加束缚。Constraints不是一个复杂的类。它是Spring对象(用于每条边)的一个汇合。当您利用SpringLayout.Constraints类时,您必要分离地将每一个Spring束缚增加到SpringLayout.Constraints。您是经由过程对组件的某一条边设置特定的束缚来向SpringLayout.Constraints“增加”束缚的。经由过程利用EAST、WEST、NORTH和SOUTH这4个SpringLayout常量,您能够挪用SpringLayout.Constraints的setContraints(Stringedge,Springspring)办法,个中String范例的参数是4个常量中的一个。比方,假如您想将一个组件增加到一个容器的顶部偏左的地位,那末能够创建两个巨细流动的spring,将它们组合起来,然后将组件增加到带有如许组合而成的spring集的容器中,如清单1所示:
清单1.利用SpringLayout
Componentleft=...;
SpringLayoutlayout=newSpringLayout();
JPanelpanel=newJPanel(layout);
SpringxPad=Spring.constant(5);
SpringyPad=Spring.constant(25);
SpringLayout.Constraintsconstraint=newSpringLayout.Constraints();
constraint.setConstraint(SpringLayout.WEST,xPad);
constraint.setConstraint(SpringLayout.NORTH,yPad);
contentPane.add(left,constraint);
这看上往不是出格难,可是当您必要增加下一个组件时,不论是增加到第一个组件的右侧仍是上面,事变都要更难办一些。您不克不及复杂地在n像素外增加组件;实践上,您必须为新近的组件增加padding(补白)。为了找出前一个组件的边,您可使用getConstraint()办法哀求结构办理器,为该办法传送您所针对的边和组件,比方layout.getConstraint(SpringLayout.EAST,left),以此来取得第一个组件的准确的边的地位。从这个地位,您能够加进必须的padding,并将其附加到其他组件的边上,如清单2所示:
清单2.利用SpringLayout增加第二个组件
Componentright=...;
SpringrightSideOfLeft=layout.getConstraint(SpringLayout.EAST,left);
Springpad=Spring.constant(20);
SpringleftEdgeOfRight=Spring.sum(rightSideOfLeft,pad);
constraint=newSpringLayout.Constraints();
constraint.setConstraint(SpringLayout.WEST,leftEdgeOfRight);
constraint.setConstraint(SpringLayout.NORTH,yPad);
contentPane.add(right,constraint);
经由过程SpringLayout利用putConstraint()
这类办法十分无效,可是假如组件的数目多起来的话,这类办法就显得单调有趣了。相反,另外一种躲避两头步骤的办法是先不带束缚地间接增加组件,然后再分离地增加束缚,利用SpringLayout的putConstraint()办法将束缚毗连到组件,如清单3所示:
清单3.用SpringLayout增加第二个组件
publicvoidputConstraint(Stringe1,Componentc1,intpad,
Stringe2,Componentc2)
publicvoidputConstraint(Stringe1,Componentc1,Springs,
Stringe2,Componentc2)
<p>
C#跟java类似,但是在跨平台方面理论上可以跨平台,实际上应用不大,执行性能优于java,跟C++基本一致,但是启动速度还是慢.代码安全,但容易性能陷阱. |
|