|
Enpaĝigo (1)Estus pli elegante aperigi la du entajpeblajn liniojn sub la koloritaj kvadratoj, kaj aperigi koloron sur la fono. Ni vidos, kiel ni povas fari tion. setBackground()Por difini la fonan koloron, sufiĉas uzi en la metodo init() de la retprogramo la metodon setBackground(). Oni pasigas kiel parametron al tiu metodo objekton Color, kiel jam vidite kun la metodo setColor() en la paŝo 2 PanelAnstataŭ desegni la entajpeblajn liniojn rekte sur la zono de la retprogramo, ni metos ilin sur panelon (objekton Panel), kiu estas speco de subzono de la retprogramo, kaj kiun ni poste povos loki sur la retprograma zono. Por generi objekton Panel, sufiĉas ĝin deklari tiel : Panel MiaPanelo = new Panel(); Poste oni aldonas ion sur tiun panelon, ekzemple entajpeblan linion : T = new TextField(10); Kaj same oni povas elekti la koloron de la panelo : MiaPanelo.setBackground(Color.white); Fine necesa aldoni la panelon al la retprograma zono : add(MiaPanelo); Jen la tuta kodo :
import java.applet.*;
import java.awt.*; public class apleto19 extends Applet { TextField T=new TextField(10); Panel MiaPanelo = new Panel(); public void init() { MiaPanelo.add(T); MiaPanelo.setBackground(Color.white); add(MiaPanelo); } }
Kaj jen la rezulto :
FlowLayout()Por la enpaĝigo mem oni povas uzi plurajn metodojn. La plej simpla, kiu defaŭlte estas ĉi-supre uzata, estas la metodo FlowLayout() : ĝi lokas ĉiun elementon en la centro de la retprograma zono aŭ de la paneloj, unu apud la alia. La avantaĝo de tiu metodo estas, ke ĝi ebligas precizigi tri parametrojn : la vertikalan niveladon (FlowLayout.LEFT, FlowLayout.RIGHT aŭ FlowLayout.CENTER), la horizontalan kaj la vertikalan interspacojn inter la elementoj. Por difini tian enpaĝigon por iu komponanto (ekzemple la retprograma zono aŭ panelo), necesas pasigi al tiu komponanto la metodon FlowLayout() pere de la metodo setLayout(), tiamaniere : MiaPanelo.setLayout(new FlowLayout(FlowLayout.RIGHT, 10,0)); Tiu kodo signifas, ke la elementoj metotaj sur la panelon MiaPanelo estos dekstre nivelitaj, kaj ke 10 rastrumerojn larĝa interspaco disigos ilin. Ekzemple, por meti du entajpeblajn liniojn en panelon :
import java.applet.*;
import java.awt.*; public class apleto20 extends Applet { TextField T=new TextField(5); TextField U=new TextField(5); Panel MiaPanelo = new Panel(); public void init() { MiaPanelo.setLayout(new FlowLayout(FlowLayout.RIGHT, 5, 0)); MiaPanelo.add(T); MiaPanelo.add(U); MiaPanelo.setBackground(Color.white); add(MiaPanelo); } }
Kaj jen la rezulto :
Vi vidas, ke la konstanto FlowLayout.RIGHT ne multe ŝanĝas la niveladon ene de la panelo, ĉar ĝi aŭtomate desegniĝas ekzakte ĉirkaŭ la elementoj, kiujn li entenas : tiuj elementoj estas ja dekstre nivelitaj, sed la panelo mem estas en la centro de la retprograma zono (defaŭlta metodo FlowLayout), kio rezultigas, ke oni rimarkas nenion. Tiu nivelada afero estos pli evidenta en la venonta retprogramo. |
||
![]() |
![]() |