Wkuno

Hvordan lage en GUI rutenett i java

Rutenettet gjør noe spesielt på dette stadiet, men med en liten bit av forskning, kan du legge actionlisteners og litt logikk for å lage et enkelt 2D spill som tic-tac-toe, eller mer kompliserte dem som Battleship.

Merk: Denne artikkelen bruker Eclipse for alle eksemplene så ting kan være forskjellig avhengig av IDE din. Dette bør være svært likt det du trenger i JCreator, men det er ganske ubrukelig for en GUI basert IDE som NetBeans skjønt, hovedsakelig på grunn av dra-og-slipp-metoden for NetBeans.

Trinn

Hvordan lage en GUI rutenett i java. Lag et java-prosjekt.
Hvordan lage en GUI rutenett i java. Lag et java-prosjekt.
  1. 1
    Lag et java-prosjekt. Dette er ganske enkel. Slå på IDE og opprette et nytt prosjekt. Kall det hva du vil. Eksempelet vil bli buttongrid.
    • Dette navnet spiller ingen rolle i det hele tatt siden det er bare filnavnet at det vil bli gitt.
  2. 2
    Lag en java klasse med en main metode. Opprett en ny klasse og nevne det hva du vil. Eksempelet vil bli buttongrid. For en Eclipse bruker vil du ønsker å sette kryss i ruten som heter public static void main (String [] args), slik at du slipper å skrive det når du starter.
    • Dette navnet er viktigere enn den forrige, fordi det vil måtte være så enkelt ord eller annet det ikke vil være brukbare.
  3. 3
    Import bibliotekene. Dette bringer all den informasjonen du trenger for å skrive kode til denne koden. Du må importere javax.swing.JFrame, javax.swing.JButton, og java.awt.Gridlayout. Disse er satt før i begynnelsen av klassen, noen der på linjene mellom 1 og 3, ikke den rekkefølgen de er på det spiller ingen rolle.
  4. 4
    Lag en konstruktør. Konstruktøren gjør en ny forekomst av buttongrid klassen slik at mange forskjellige buttongrid er til alle har egen informasjon. Alle konstruktører må heter det samme som sin klasse. Constructors trenger ikke noe før det, men "offentlig" blir ofte lagt der for enkel referanse. Konstruktører plasseres ofte som den første metoden i en klasse, så den går rett etter klassen navn, det må imidlertid være plassert innenfor klassen. Den buttongrid konstruktøren trenger parametre, som er satt i parentes etter navnet på konstruktøren. Parametrene i dette eksempelet er heltall 'x' og 'y'.
  5. 5
    Lag ramme:
    1. Rammen må bli navngitt. Å sikre at det kan refereres utenfor ButtonGrid konstruktør-metoden du plasserer den ut siden av denne metoden, men innenfor klassen. De fleste variablene er navngitt øverst i klassen rett før konstruktøren. For å opprette en ny ramme du skriver: JFrame frame = new JFrame ();
    2. Inne i konstruktør-metoden må vi sørge for at alle knappene er satt i rutenettet. For å gjøre dette har vi satt utformingen av rammen ved å skrive: frame.setLayout (ny GridLayout (x, y));
    3. Ikke nødvendigvis obligatorisk, men for å gjøre rammen tett når du treffer 'x' knappen i øvre høyre hjørne vi trenger å legge linjen: frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
    4. For å gjøre rammen en passende størrelse slik at alt passer vi trenger for å kjøre pakken kommandoen: frame.pack ();
    5. Endelig for rammen vi må gjøre det slik at det er synlig: frame.setVisible (true);
  6. 6
    Opprett rutenett:
    1. Knappene som brukeren kommuniserer med behov for å bli gjort, men siden vi ikke vet hvor mange vi trenger, må de bli navngitt først. Så rett under streken der du oppretter ramme lage knappene: JButton [] [] grid; De to settene med klammer er det å si at JButton er i rutenettet er holdt i et todimensjonalt format, hvis det var bare én sett med klammer da ville det bare være en linje av JButton tallet, som fortsatt fungerer, det er bare lettere å referere til hvilken knapp som blir opprettet eller samhandlet med når det er todimensjonal.
    2. Den JButton er har blitt navngitt, men vi har fortsatt å si hvor mange knapper det er. Du må legge til en linje med kode i konstruktør som fastsetter hvor: grid = new JButton [width] [lengde];
    3. Nå som det er blitt bestemt at det vil være et visst antall knapper, må hver bli opprettet. Den enkleste måten å gjøre dette på er med to sløyfer for, en til x-aksen, en for y-aksen. Inne i to sløyfer gjør vi en ny knapp, og for enkel referanse eksempelet setter teksten i hver knapp, slik at vi vet hvilken knapp i to-dimensjonal array er der. Å lage en knapp inne i loopen du trenger for å sette grid [x] [y] = new JButton ("(" + x + "," + y + ")");
  7. 7
    Legge til knapper på rammen. Inne i sløyfen må vi sette knappene på rammen med en enkel kommando: frame.add (grid [x] [y]);
  8. 8
    Gjør buttongrid eksempel. I din viktigste klassetype: ny ButtonGrid (3,3); De to treere gjør er en 3 x 3 rutenett, og noen to positive tall kan settes inn der.
  9. 9
    Kjør programmet. For å gjøre dette i eclipse trykk Ctrl + F11
  10. 10
    Finn ut mer om java: http://java.sun.com/j2se/1.4.2/docs/api/index-files/index-1.html
    1. Mer med knapper: For å få knappene ser noe gjør opp ActionListener ()

    Trinn koden

    • Den største klassen:
      public class ButtonGrid {  public static void main (String [] args) {    }  } 
    • Import:
      
    • Constructor Kode:
      public class ButtonGrid {  offentlig ButtonGrid (int bredde, int lengde) {  }  } ... 
    • Ramme Kode:
      public class ButtonGrid {  JFrame frame = new JFrame ();  offentlig ButtonGrid (int bredde, int lengde) { . ramme setLayout (ny GridLayout (bredde, lengde));  ramme setDefaultCloseOperation (JFrame EXIT_ON_CLOSE.).;   frame pakke ().;   ramme setVisible (true).;   }  } ... 
    • Button Grid Kode:
      | JFrame frame = new JFrame (); / / lager ramme  JButton [] [] grid; / / navn rutenettet av knapper    offentlig ButtonGrid (int bredde, int lengde) {/ / Konstruktør med to parametre  ramme setLayout (ny GridLayout (bredde, lengde));. / / sett utformingen av rammen  grid = new JButton [width] [lengde]; / / tildele størrelsen på rutenettet  for (int y = 0, y <lengde; y + +) {   for (int x = 0; x <bredde; x + +) {  grid [x] [y] = new JButton ("(" + x + "," + y + ")");  . ramme add (grid [x] [y]), / / legger til knappen til rutenett  }  }  ramme setDefaultCloseOperation (JFrame EXIT_ON_CLOSE.).;   frame pakke ().;   ramme setVisible (true).;  } ... 
    • Legge Knapper til Ramme:
      for (int y = 0, y <lengde; y + +) {   for (int x = 0; x <bredde; x + +) {  grid [x] [y] = new JButton ("(" + x + "," + y + ")");   Belterammer (grid [x] [y]).;  }  } ... 
    • Å gjøre en knapp grid eksempel:
      public static void main (String [] args) {  ny ButtonGrid (3, 3); / / lager ny ButtonGrid med to parametre  } ... 
    • Endelig Kode:
      import javax.swing.JFrame; / / import JFrame bibliotek  import javax.swing.JButton; / / import JButton bibliotek  import java.awt.GridLayout; / / import GridLayout bibliotek    public class ButtonGrid {    JFrame frame = new JFrame (); / / lager ramme  JButton [] [] grid; / / navn rutenettet av knapper    offentlig ButtonGrid (int bredde, int lengde) {/ / Konstruktør  ramme setLayout (ny GridLayout (bredde, lengde));. / / set layout  grid = new JButton [width] [lengde]; / / tildele størrelsen på rutenettet  for (int y = 0, y <lengde; y + +) {  for (int x = 0; x <bredde; x + +) {  grid [x] [y] = new JButton ("(" + x + "," + y + ")"); / / lager ny knapp . ramme add (grid [x] [y]), / / legger til knappen til rutenett  }  }  ramme setDefaultCloseOperation (JFrame EXIT_ON_CLOSE.).;  frame pakke ();. / / sett passende størrelse for frame  ramme setVisible (true);. / / gjør ramme synlig  }  public static void main (String [] args) {  ny ButtonGrid (3, 3); / / lager ny ButtonGrid med to parametre  }  } 

    import javax.swing.JFrame; / / import JFrame bibliotek import javax.swing.JButton; / / import JButton bibliotek import java.awt.GridLayout; / / import GridLayout bibliotek

    public class ButtonGrid {

      JFrame frame = new JFrame (); / / lager ramme  JButton [] [] grid; / / navn rutenettet av knapper   offentlig ButtonGrid (int bredde, int lengde) {/ / Konstruktør  frame.setLayout (ny GridLayout (bredde, lengde)); / / set layout  grid = new JButton [width] [lengde]; / / tildele størrelsen på rutenettet  for (int y = 0, y <lengde; y + +) {  for (int x = 0; x <bredde; x + +) {  grid [x] [y] = new JButton ("(" + x + "," + y + ")"); / / lager ny knapp   frame.add (grid [x] [y]), / / ​​legger til knappen til rutenett  }  }  frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);  frame.pack (); / / sett passende størrelse for frame  frame.setVisible (true); / / gjør ramme synlig  }  public static void main (String [] args) {  ny ButtonGrid (3,3);/ / lager ny ButtonGrid med to parametre  }