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
- 1Lag 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.
- Dette navnet spiller ingen rolle i det hele tatt siden det er bare filnavnet at det vil bli gitt.
- 2Lag 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.
- 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.
- 3Import 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.
- 4Lag 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'.
- 5Lag ramme:
- 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 ();
- 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));
- 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);
- For å gjøre rammen en passende størrelse slik at alt passer vi trenger for å kjøre pakken kommandoen: frame.pack ();
- Endelig for rammen vi må gjøre det slik at det er synlig: frame.setVisible (true);
- 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 ();
- 6Opprett rutenett:
- 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.
- 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];
- 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 + ")");
- 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.
- 7Legge til knapper på rammen. Inne i sløyfen må vi sette knappene på rammen med en enkel kommando: frame.add (grid [x] [y]);
- 8Gjø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.
- 9Kjør programmet. For å gjøre dette i eclipse trykk Ctrl + F11
- 10Finn ut mer om java: http://java.sun.com/j2se/1.4.2/docs/api/index-files/index-1.html
- 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 }