Writing /home/infogasy/domains/wiki.infogasy.net/public_html/data/cache/1/1a8ff022549867258bc0bb7fb6fb04b7.xhtml failed

Andao indray hiresaka objet XI

Mikasika ny Interface graphique amin'ny Java

Ahoana indray ary ao amin’ny tontolo Java ny fampiasana ireo vainga tokony hikarakara antsakany sy andavany ny fanehoana ivelany ny praograma rehefa hampihodinana izy eo amin’ny sehatra hilana azy ?

Io moa ilay antsoina hoe : presentation na GUI (graphic unit interface) amin’ny andalan-drafitra fanorenana praograma infrormatika.

Mazava ho azy ary araka ny efa voalaza tany aloha, fa amin’ny Java dia Objet daholo ny raha jiaby ; ka noho izany ary dia azo vinaniana fa tsy maintsy anaty fonosana voafaritra tsara no hitadiavana ireo kilasy hitrandrahana ity fanehoana ity.

Tonga dia tsara fantarina ary fa roa ny fonosana ao amin’ny API ?ny JSE no itadiavana ireo kilasy rehetra hilaina raha hanorina vainga mpikarakara fanehoana isika, dia : java.awt izay taloha indrindra, fa taty aoriana moa dia nihatsara izy io ka nampian?i Sun ny fonosana javax.swing. Tsy fonosana misaraka anefa izy roa ireo, satria raha jerena akaiky ny fifandraisany dia ho tsapa fa ireo kilasy rehetra dia mifandray ny ankamaroany amin’ny alalan’ny fandovana : izany hoe ny ankamaroan’ny kilasy hita ao anaty javax.swing dia mandova toetra maro amin’ireo izay voafaritra tary amin’ny kilasy hita amin’ny java.awt

Mba hanamora ny andrana hatao ary amin’ity fanehoana ity, dia ireto no rafitra tsara fantatra raha hiatrika ny fampiasana ny fonosana roa ireo isika :

  • Ny rafitra zavatra aseho antsoina hoe : Composants kirakiraina amin’ireo kilasy Component izay mitsinjara ho fitoerana na Conteneurs graphiques kirakiraina amin’ireo kilasy Container, sy ireo zava-madinika aseho maro aseho anaty container na widgets (toa avy amin’ny hoe windows gadgets hono io anarana io ), ohatra ny kilasy : TextField (zava-madinika fandraisana sy famoahana soratra) ; Button (fandefasana baiko), Choice (fandraisana safidy amina lisitra), sns ?.

Dia tadidio koa ary fa ao anaty fonosana javax.swing dia mazana tovanana J fotsiny ireo anarana kilasy widgets tanaty java.awt ireo (ohatra JTextField ao anaty javax.swing) ; dia mora tadidy izay kilasy ilainao raha te-hampiasa ireo any amin’ny javax.swing ianao. Ireo zavatra aseho hita ao anaty javax.swing mantsy tsara kokoa noho izay aorina amin’ireo izay ao anaty java.awt ?

  • Ny rafitra fandaminana anaty fitoerana na strategie de placement, mazana kirakiraina amin’ireo interface LayoutManager sy kilasy mpametraka lamina fitoerana na xxxLayout (fandaminana ny toeran?ireo zava-madinika aseho anatin?ireo Container voafaritra). Ohatra : kilasy FlowLayout raha tianao hitandahatra ireo zava-madinika aseho, BorderLayout raha tianao zaraina dimy ireo faritra hasiana azireo (Avaratra, Atsimo, Andrefana, Antsinanana, Ampovoany), sns ..
  • Ny rafitra mpitandregny na mpihaino zava-mitranga eo anivon?ireo zavatra aseho ireo na ecouteur d?evenements izay mazana voafaritra mazava ny hetsika mametraka io fihainoana io ao amin’ilay kilasin?ilay zavatra aseho. Tsy maintsy koa anefa io rafitra apetraka io mamaritra ny interface mazana antsoina xxxListener. Ilay xxx moa eto dia mamaritra ireo Objet mety hipoiran?ireo zava-mitranga.

Ohatra : Ny kilasy TextField dia misy hetsika antsoina hoe addActionListener ao aminy ; azo ametrahana fihainoana zava-mitranga eo anivony, io hetsika io. Dia tsy maintsy isika manao implements ny interface ActionListener, (izay tsy misy afatsy hetsika abstract iray antsoina hoe : actionPerformed(?)) amin’ny kilasy hasaintsika hitantana ireo tranga mety hiseho rehetra ⇒ dia tsy maintsy koa izany isika mamaritra izay hatao ao anatin?io hetsika io ao amin’ilay kilasintsika mpitantana tranga miseho. Vokany : raha vao misy zava-mitranga izany ao amin’ilay Objet TextField (ohatra : soratra ovaina amin’ny fanindriana soratra milina ; clavier), dia mampandeha avy hatrany izay ao anaty hetsika actionPerformed(?) izay tranga izay, amin’ilay kilasy mpitantana.

  • Ny rafitra mpanantanteraka izay tokony hatao rehefa misy tranga amin’ireo zavatra aseho ireo na gestionnaire d?evenements . Fametrahana izay ao anaty hetsika ka tokony hatao rehefa miseho ireo tranga isan-karazany eo anivon?ireo zava-maro aseho na container na widgets. Io voazava ambony io moa ny amin’io kilasy mety hatao mpitantana tranga io.

Raha atao jery ankapobe izany ny resaka fanehoana na GUI amin’ny Java, dia ireo rafitra ambony ireo no tokony ho atao an-tsaina foana, satria raha ny API graphique avy hatrany anie no hidirana tsirairay ireo kilasy amin’izy io dia eo isika no raisina. Za aloha dia tena fanina mihitsy, fony mbola nitifitra voalohany, fa aleo dia apetraka amin’ny hoe: toa izao ny seho tiana hatranga de lasa amin’izay mikaroka ireo widgets na container ao anaty API mety hanorenana ilay seho tiana isika, na fomba mahomby koa anie ny tonga dia mibata ireo vainga kilasy henjana fiasa avoakan?ireo mpanorina an-kijery fotsiny (assembleur visuel de composant).

Ity farany ity no fika hitako aloha hanafainganana ny fanorenana haingana ity andalan-drafitra fanehoana ity ; indrindra moa raha voafehy tsara ny fisarahana amin’ireo andalan-drafitra amin’ny fanorenana informatika atao.

Koa mba hanehoana fotsiny ireo voalaza ireo ary, dia tonga dia hasiantsika ohatra tsotra kely hatao fampidirana amin’ity lafiny fanehoana ity.

package resakaObjet;
 
import java.awt.*; // Ny fonosana misy ireo kilasy zavatra aseho (zava-madinika sy fitoerana)
import java.awt.event.* ;  // Ny fonosana hangalana ireo kilasy manodidina ny tranga anivon'ny zavatra aseho
 
public class OhatraTextField
{
    TextField sehoSoratra; // Objet fandraisana sy fanehoana soratra
 
    public OhatraTextField() // Constructeur- n?ity kilasy ity
    {
        sehoSoratra = new TextField(50); // Constructeur-ny TextField ao anaty API io
    }
 
    public TextField getSehoSoratra() // Getters mahazatra; mamerina TextField ihany
    {
        return sehoSoratra;
    }
 
    public void setSehoSoratra(TextField seho) // Setters mahazatra, mandray Objet TextField
    {
        sehoSoratra = seho;
    }
 
    private class RindraTranga implements ActionListener // Ity ilay kilasy mpandrindra tranga miseho
    {
        public void actionPerformed(ActionEvent e) // ilay hetsika miasa rehefa misy ny tranga
        { // Mamadika ho renintsoratra ireo izay ao anaty attribut sehoSoratra, dia aseho ho hita ny vokatra
           sehoSoratra.setText(sehoSoratra.getText().toUpperCase());
        }
    }
 
    static public void main(String arg[[]])
    {
        OhatraTextField sehoAndrana = new OhatraTextField(); // Objet-n?ity kilasy OhatraTextField ity
        Frame sehoFitoerana = new Frame("Andrana TextField"); // Karazana fitoerana iray Frame
 
        sehoFitoerana.setLayout(new FlowLayout(FlowLayout.LEFT)); // Fandaminana ny fitoerana
        // Fametrahana ilay mpihaino tranga miseho amin'ilay zava-madinika TextField
        sehoAndrana.getSehoSoratra().addActionListener(sehoAndrana.new RindraTranga());
        sehoFitoerana.add(sehoAndrana.getSehoSoratra()); // Apetraka anaty fitoerana ilay TextField
 
        sehoFitoerana.pack(); // Afitina ilay haben'ny fitoerana mba ho sahaza ireo zava-madinika ao anatiny
        sehoFitoerana.setVisible(true); // Atranga ho hitamaso ireo zavatra aseho rehetra anaty fitoerana
    }
}

Fanazavana:

  • Ny zavatra aseho, raha tanisaina dia ireto:
    • sehoSoratra dia karazana TextField (ao anaty fonosana java.awt): widgets na zava-madinika izy io
    • sehoFitoerana dia karazana Frame (ao anaty fonosana java.awt): container na fitoerana
OhatraTextField sehoAndrana = new OhatraTextField(); // TextField no ao anatin?io Objet io
Frame sehoFitoerana = new Frame("Andrana TextField"); // Karazana fitoerana iray Frame 
  • Ny kilasy fandaminana ny fitoerana hisy ireo zava-madinika dia ny FlowLayout (FlowLayout.LEFT) no ampiasaina eto (mitandahatra ary mahitsy amin’ny sisiny havia, raha misy adalany maro ao anaty fitoerana)
sehoFitoerana.setLayout(new FlowLayout(FlowLayout.LEFT)); // Fandaminana ny fitoerana 
  • Ny fametrahana ilay mpihaino tranga eo anivon?ireo zava-madinika TextField naseho sy ny kilasy mpitantana tranga ampiasaina dia :
// Fametrahana ilay mpihaino tranga miseho amin'ilay zava-madinika TextField
sehoAndrana.getSehoSoratra().addActionListener(sehoAndrana.new RindraTranga());

Ity fomba fanoratra ity moa dia efa hitantsika tany aloha ihany, nefa na izany aza dia andao hasina kozy kely ihany:

  1. ilay sehoAndrana.getSehoSoratra() aloha dia mamerina karazana TextField eto
  2. fantatra ao anaty API moa fa addActionListener(ActionListener)ny sonian?ilay hetsika, ary ahafahana mametraka fihainoana Action (touche Entree eto) amin’ireo TextField rehetra
  3. sehoAndrana.new RindraTranga() indray anefa eto no ataontsika argument-n?ilay hetsika mametraka mpihaino tranga io?. Raha jerena indray anefa ilay kilasy anatin?ilay kilasy OhatraTextField ?ntsika, antsoina hoe RindraTranga (classe interne no fiantso azy) dia nampiarahantsika amin’ilay interface ActionListener izy io ary private; koa dia tsy maintsy faritana koa izany izay ao anatiny ilay hetsika actionPerformed(?)

Ilay kilasy mpandrindra tranga miseho eo anivon?ireo zavatra aseho, kosa etsy andaniny

private class RindraTranga implements ActionListener // Ity ilay kilasy mpandrindra tranga miseho
{
    public void actionPerformed(ActionEvent e) // ilay hetsika miasa rehefa misy ny tranga
    { // Mamadika ho renintsoratra ireo izay ao anaty attribut sehoSoratra, dia aseho ho hita ny vokatra
       sehoSoratra.setText(sehoSoratra.getText().toUpperCase());
    }
}

Hita amin’io ary fa karazana ActionListener ihany izany io sehoAndrana.new RindraTranga() io raha tena fotorona satria

  • new RindraTranga() manorina Objet karazana ActionListener sady kilasy anatin’ny OhatraTextField
  • sehoAndrana Objet karazana OhatraTextField; miantso Objet noforonina amin’ny kilasy anatiny.

Dia mety tsara izany ilay soratra :

sehoAndrana.getSehoSoratra().addActionListener(sehoAndrana.new RindraTranga());

Ny amin’ity indray:

sehoFitoerana.add(sehoAndrana.getSehoSoratra()); // Apetraka anaty fitoerana ilay TextField 

dia mametraka ao anaty fitoerana sehoFitoerana ilay TextField ao anaty Objet OhatraTextField sehoAndrana

Resultat du lancement:

Avant la frappe de la touche ENTREE

avantrc.jpg

Apres la frappe de la touche ENTREE

apresrc.jpg

(Hitohy ...)

 

andaohiresakaobjetfahaxi.txt · Novaina farany:: 2008/09/11 12:43