Het raster doet niets bijzonders in dit stadium, maar met een beetje van het onderzoek, kunt u actionlisteners en een beetje logica toe te voegen aan een eenvoudige 2D-spel als make tic-tac-teen, of meer gecompliceerde degenen zoals Battleship.
Opmerking: Dit artikel maakt gebruik van Eclipse voor alle voorbeelden dus dingen anders kunnen zijn, afhankelijk van uw IDE. Dit moet zeer vergelijkbaar met wat je nodig hebt in JCreator, maar het is nogal nutteloos voor een GUI-gebaseerde IDE zoals NetBeans wel, vooral als gevolg van het slepen en neerzetten van NetBeans.
Stappen
- 1Maak een java project. Dit is vrij eenvoudig. Zet uw IDE en maak een nieuw project. Noem het wat je wilt. Het voorbeeld wordt buttongrid.
- Deze naam is niet echt belangrijk helemaal omdat het is gewoon de naam van het bestand dat het zal worden gegeven.
- Deze naam is niet echt belangrijk helemaal omdat het is gewoon de naam van het bestand dat het zal worden gegeven.
- 2Maak een Java-klasse met een belangrijkste methode. Maak een nieuwe klasse en noem het wat je wilt. Het voorbeeld wordt buttongrid. Voor een Eclipse gebruiker wil je tic het vak genaamd public static void main (string [] args), zodat u niet hoeft te typen als je begint.
- Deze naam is belangrijker dan de vorige omdat het zal moeten zo woord of anders niet bruikbaar.
- Deze naam is belangrijker dan de vorige omdat het zal moeten zo woord of anders niet bruikbaar.
- 3Bibliotheken importeren. Dit brengt alle informatie die u nodig hebt om uw code te schrijven aan deze code. Je zult moeten javax.swing.JFrame, javax.swing.JButton en java.awt.Gridlayout importeren. Deze worden voorgelegd aan het begin van de klasse, wat waar op de lijnen tussen 1 tot 3, de volgorde dat ze op daar doet er niet toe.
- 4Maak een constructeur. De constructor maakt een nieuwe instantie van de klasse buttongrid waardoor veel verschillende buttongrid is om al hebben aparte informatie. Alle constructeurs moeten worden met dezelfde naam als hun klasse. Constructors heb niets nodig voordat het, maar 'openbare' wordt er vaak gezet voor het gemak van referentie. Constructors worden vaak geplaatst als de eerste methode in een klasse, dus het gaat direct na de naam van de klasse, het moet echter worden binnen de klasse geplaatst. De buttongrid constructor moet parameters, die worden opgezet tussen haakjes achter de naam van de constructeur. De parameters in dit voorbeeld gehele getallen 'x' en y.
- 5Maak frame:
- Het frame moet worden genoemd. Te zorgen dat het kan worden verwezen buiten de ButtonGrid constructormethode u hem uit kant van die methode, maar binnen de klasse. De meeste variabelen genoemd bovenaan de klas vlak voor de constructor. Om een nieuw frame dat u type te maken: JFrame kader = new JFrame ();
- Binnen de constructormethode moeten we ervoor zorgen dat alle knoppen worden in de grid. Om dit te doen zetten we de lay-out van het frame door te typen: frame.setLayout (nieuw GridLayout (x, y));
- Niet per se verplicht, maar aan het frame dicht wanneer u de knop 'x' hit in de rechter bovenhoek we nodig hebben om de regel toe te voegen maken: frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
- Om het kader van een juiste grootte, zodat alles past we nodig hebben om het commando pak lopen maken: frame.pack ();
- Ten slotte voor het frame moeten we om het te maken, zodat het zichtbaar is: frame.setVisible (true);
- Het frame moet worden genoemd. Te zorgen dat het kan worden verwezen buiten de ButtonGrid constructormethode u hem uit kant van die methode, maar binnen de klasse. De meeste variabelen genoemd bovenaan de klas vlak voor de constructor. Om een nieuw frame dat u type te maken: JFrame kader = new JFrame ();
- 6Maak een knop raster:
- De knoppen die de gebruiker interageert met moeten worden gemaakt, maar omdat we niet weten hoeveel we nodig hebben, moeten ze eerst worden genoemd. Dus net onder de lijn waar u maakt kader te maken van de knoppen: JButton [] [] net; De twee sets van de vierkante haken zijn er om te zeggen dat de JButton in het rooster worden bewaard in een tweedimensionale indeling, als er maar een set van vierkante haken dan zou het gewoon een lijn van JButton's, die nog steeds werkt, het is gewoon makkelijker om te verwijzen naar die knop wordt gemaakt of interactie met wanneer het twee-dimensionale.
- De JButton's zijn genoemd, maar we hebben nog steeds te zeggen hoeveel knoppen er zijn. Je moet een regel code toe te voegen aan de aannemer die de hoeveelheid sets: raster = new JButton [breedte] [lengte];
- Nu dat het is vastgesteld dat er een aantal knoppen zijn, van elkaar moeten worden gecreëerd. De eenvoudigste manier om dit te doen is met twee van lussen, een voor de x-as, een voor de y-as. Binnen de twee lussen maken we een nieuwe knop, en voor het gemak van verwijzing naar het voorbeeld zet tekst binnen elke knop, zodat we weten welke knop in de twee-dimensionale array is waar. Om een knop te maken, binnen de lus moet je rooster zetten [x] [y] = new JButton ("(" + x + "," + y + ")");
- De knoppen die de gebruiker interageert met moeten worden gemaakt, maar omdat we niet weten hoeveel we nodig hebben, moeten ze eerst worden genoemd. Dus net onder de lijn waar u maakt kader te maken van de knoppen: JButton [] [] net; De twee sets van de vierkante haken zijn er om te zeggen dat de JButton in het rooster worden bewaard in een tweedimensionale indeling, als er maar een set van vierkante haken dan zou het gewoon een lijn van JButton's, die nog steeds werkt, het is gewoon makkelijker om te verwijzen naar die knop wordt gemaakt of interactie met wanneer het twee-dimensionale.
- 7Knoppen toe te voegen aan het frame. In de lus moeten we de knoppen op de het frame gezet met een simpel commando: frame.add (raster [x] [y]);
- 8Maak buttongrid instantie. In je hoofdklasse Type: nieuw ButtonGrid (3,3); De twee drieën maken is een 3 bij 3 raster, en elke twee positieve getallen kunnen daar worden gebracht.
- 9Run-programma. Om dit te doen in eclipse op Ctrl + F11
- 10Ontdek meer over java: http://java.sun.com/j2se/1.4.2/docs/api/index-files/index-1.html
- Meer met knopen: Om de knoppen werken iets opzoeken ActionListener ()
Stappen code
- De hoofdklasse:
public class ButtonGrid { public static void main (String [] args) { } }
- Invoer:
- Constructor Code:
public class ButtonGrid { openbare ButtonGrid (int breedte, int lengte) { } } ...
- Frame Code:
public class ButtonGrid { JFrame kader = new JFrame (); openbare ButtonGrid (int breedte, int lengte) { . kader setLayout (nieuw GridLayout (breedte, lengte)); frame van setDefaultCloseOperation (JFrame EXIT_ON_CLOSE.).; kader pack ().; frame van setVisible (true).; } } ...
- Knop Grid Code:
| JFrame kader = new JFrame (); / / creëert kader JButton [] [] net; / / namen het raster van knoppen openbare ButtonGrid (int breedte, int lengte) {/ / bouwer met 2 parameters frame van setLayout (nieuw GridLayout (breedte, lengte));. / / set lay-out van het frame raster = new JButton [breedte] [lengte]; / / toewijzen van de grootte van grid voor (int y = 0; y <lengte; y + +) { voor (int x = 0; x <breedte; x + +) { rooster [x] [y] = new JButton ("(" + x + "," + y + ')'); . kader toevoegen (rooster [x] [y]); / / voegt knop op raster } } frame van setDefaultCloseOperation (JFrame EXIT_ON_CLOSE.).; kader pack ().; frame van setVisible (true).; } ...
- Knoppen toevoegen aan Frame:
voor (int y = 0; y <lengte; y + +) { voor (int x = 0; x <breedte; x + +) { rooster [x] [y] = new JButton ("(" + x + "," + y + ')'); kader toevoegen (rooster [x] [y]).; } } ...
- Het maken van een knop raster bijvoorbeeld:
public static void main (String [] args) { nieuwe ButtonGrid (3, 3); / / maakt nieuwe ButtonGrid met 2 parameters } ...
- Final Code:
import javax.swing.JFrame; / / invoer JFrame bibliotheek import javax.swing.JButton; / / invoer JButton bibliotheek import java.awt.GridLayout; / / invoer GridLayout bibliotheek public class ButtonGrid { JFrame kader = new JFrame (); / / creëert kader JButton [] [] net; / / namen het raster van knoppen openbare ButtonGrid (int breedte, int lengte) {/ / bouwer frame van setLayout (nieuw GridLayout (breedte, lengte));. / / set layout raster = new JButton [breedte] [lengte]; / / toewijzen van de grootte van grid voor (int y = 0; y <lengte; y + +) { voor (int x = 0; x <breedte; x + +) { rooster [x] [y] = new JButton ("(" + x + "," + y + ")"); / / creëert nieuwe knop . kader toevoegen (rooster [x] [y]); / / voegt knop op raster } } frame van setDefaultCloseOperation (JFrame EXIT_ON_CLOSE.).; kader pack ();. / / sets juiste grootte voor frame frame van setVisible (true);. / / maakt kader zichtbaar } public static void main (String [] args) { nieuwe ButtonGrid (3, 3); / / maakt nieuwe ButtonGrid met 2 parameters } }
import javax.swing.JFrame; / / invoer JFrame importbibliotheek javax.swing.JButton; / / invoer JButton importbibliotheek java.awt.GridLayout; / / invoer GridLayout bibliotheek
public class ButtonGrid {
JFrame kader = new JFrame (); / / creëert kader JButton [] [] net; / / namen het raster van knoppen openbare ButtonGrid (int breedte, int lengte) {/ / bouwer frame.setLayout (nieuw GridLayout (breedte, lengte)); / / set layout raster = new JButton [breedte] [lengte]; / / toewijzen van de grootte van grid voor (int y = 0; y <lengte; y + +) { voor (int x = 0; x <breedte; x + +) { rooster [x] [y] = new JButton ("(" + x + "," + y + ")"); / / creëert nieuwe knop frame.add (rooster [x] [y]); / / voegt knop op raster } } frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); frame.pack (); / / sets juiste grootte voor frame frame.setVisible (true); / / maakt kader zichtbaar } public static void main (String [] args) { nieuwe ButtonGrid (3,3);/ / maakt nieuwe ButtonGrid met 2 parameters }