„Grid“šiame etape nieko ypatingo nedaro, tačiau šiek tiek ištyrę galite pridėti veiksmo klausytojų ir šiek tiek logikos, kad sukurtumėte paprastą 2D žaidimą, pvz., „Tic-tac-toe“, arba sudėtingesnius, tokius kaip „Battleship“.
Pastaba: Šiame straipsnyje visiems pavyzdžiams naudojama „Eclipse“, todėl viskas gali skirtis priklausomai nuo jūsų IDE. Tai turėtų būti labai panašu į tai, ko jums reikės „JCreator“, tačiau tai gana nenaudinga GUI pagrįstam IDE, pvz., „NetBeans“, daugiausia dėl „NetBeans“vilkimo ir nuleidimo metodo.
Žingsniai
Žingsnis 1. Sukurkite „Java“projektą
Tai gana paprasta. Įjunkite IDE ir sukurkite naują projektą. Vadink kaip nori. Pavyzdys bus buttongrid.
Šis vardas visiškai nesvarbus, nes jis bus suteiktas tik failo pavadinimu
Žingsnis 2. Sukurkite „Java“klasę naudodami pagrindinį metodą
Sukurkite naują klasę ir pavadinkite ją norimu. Pavyzdys bus buttongrid. „Eclipse“vartotojui norėsite pažymėti langelį, vadinamą public static void main (string args), todėl pradėdami jo nereikės įvesti.
Šis vardas yra svarbesnis už ankstesnį, nes jis turės būti kaip vienas žodis, kitaip jis nebus naudojamas
3 veiksmas. Importuokite bibliotekas
Į šį kodą įeina visa informacija, kurios jums reikės norint parašyti kodą. Turėsite importuoti javax.swing. JFrame, javax.swing. JButton ir java.awt. Gridlayout. Jie pateikiami prieš pamokos pradžią, kažkur ties eilutėmis nuo 1 iki 3, jų eilės tvarka nesvarbi.
Žingsnis 4. Sukurkite konstruktorių
Konstruktorius sukuria naują buttongrid klasės egzempliorių, leidžiantį daugeliui skirtingų mygtukų tinklelių turėti atskirą informaciją. Visi konstruktoriai turi būti pavadinti taip pat, kaip ir jų klasė. Konstruktoriams nieko nereikia prieš tai, tačiau dažnai pateikiama „vieša“, kad būtų lengviau susipažinti. Konstruktoriai dažnai pateikiami kaip pirmasis klasės metodas, todėl jis eina iškart po klasės pavadinimo, tačiau jis turi būti klasėje. „Buttongrid“konstruktoriui reikia parametrų, kurie pateikiami skliausteliuose po konstruktoriaus pavadinimo. Šio pavyzdžio parametrai yra sveikieji skaičiai „x“ir „y“.
5 žingsnis. Sukurkite rėmelį:
- Rėmas turi būti pavadintas. Norėdami įsitikinti, kad į jį galima nurodyti ne „ButtonGrid“konstruktoriaus metodu, padėkite jį to metodo šone, bet klasėje. Dauguma kintamųjų yra pavadinti klasės viršuje prieš konstruktorių. Norėdami sukurti naują rėmelį, įveskite: JFrame frame = new JFrame ();
- Konstruktoriaus metodo viduje turime įsitikinti, kad visi mygtukai yra išdėstyti tinklelio išdėstyme. Norėdami tai padaryti, nustatome rėmelio išdėstymą įvesdami: frame.setLayout (new GridLayout (x, y));
- Nebūtinai privaloma, bet kad rėmas būtų uždarytas, kai paspausite mygtuką „x“viršutiniame dešiniajame kampe, turime pridėti eilutę: frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE);
- Kad rėmas būtų tinkamo dydžio, kad viskas tilptų, turime paleisti komandą pack: frame.pack ();
-
Galiausiai, kad rėmelis būtų toks, kad jis būtų matomas: frame.setVisible (true);
Žingsnis 6. Sukurkite mygtukų tinklelį:
- Mygtukai, su kuriais naudotojas sąveikauja, turi būti pagaminti, tačiau kadangi nežinome, kiek jų reikia, pirmiausia juos reikia įvardyti. Taigi tiesiai po linija, kurioje kuriate rėmelį, sukurkite mygtukus: JButton tinklelis; Du kvadratinių skliaustų rinkiniai yra skirti pasakyti, kad tinklelyje esantys „JButton“laikomi dvimatiu formatu, jei būtų tik vienas kvadratinių skliaustų rinkinys, tai būtų tiesiog „JButton“eilutė, kuri vis dar veikia, tai tiesiog lengviau nurodyti, kuris mygtukas kuriamas ar su kuriuo sąveikaujama, kai jis yra dvimatis.
- „JButton“buvo pavadinti, tačiau vis tiek turime pasakyti, kiek mygtukų yra. Konstruktoriuje reikia pridėti kodo eilutę, kuri nustato sumą: tinklelis = naujas JButton [plotis] [ilgis];
-
Dabar, kai buvo nustatyta, kad bus tam tikras mygtukų skaičius, kiekvienas iš jų turi būti sukurtas. Lengviausias būdas tai padaryti naudojant dvi kilpas, vieną x ašiai, vieną y ašiai. Dviejų kilpų viduje sukuriame naują mygtuką, o kad būtų lengviau susipažinti, pavyzdys įdeda tekstą į kiekvieno mygtuko vidų, kad žinotume, kuris dvimatės masyvo mygtukas yra. Norėdami sukurti mygtuką, kilpos viduje turite įdėti tinklelį [x] [y] = naujas JButton ("("+x+","+y+")");
Žingsnis 7. Pridėkite mygtukus prie rėmo
Kilpos viduje mes turime uždėti mygtukus ant rėmo paprasta komanda: frame.add (grid [x] [y]);
8. Padarykite „ButtonGrid“egzempliorių
Jūsų pagrindinės klasės tipas: naujas „ButtonGrid“(3, 3); Du trejetai sudaro 3x3 tinklelį, ir ten galima įvesti bet kokius du teigiamus skaičius.
Žingsnis 9. Paleiskite programą
Norėdami tai padaryti užtemimo metu, paspauskite Ctrl+F11
1 metodas iš 1: žingsnių kodas
Pagrindinė klasė:
public class ButtonGrid {public static void main (String args) {}}
Importas:
importuoti javax.swing. JFrame; importuoti javax.swing. JButton; importuoti java.awt. GridLayout; viešosios klasės „ButtonGrid“{…
Konstruktoriaus kodas:
public class ButtonGrid {public ButtonGrid (int plotis, int ilgis) {}}…
Rėmelio kodas:
public class ButtonGrid {JFrame frame = naujas Jframe (); public ButtonGrid (int plotis, int ilgis) {frame.setLayout (naujas GridLayout (plotis, ilgis)); frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE); frame.pack (); frame.setVisible (true); }}…
Mygtuko tinklelio kodas:
| JFrame kadras = naujas JFrame (); // sukuria rėmelį JButton tinklelis; // įvardija mygtukų tinklelį viešai ButtonGrid (int plotis, int ilgis) {// konstruktorius su 2 parametrais frame.setLayout (naujas GridLayout (plotis, ilgis)); // nustatyti rėmo tinklelio išdėstymą = naujas JButton [plotis] [ilgis]; // skirti tinklelio dydį (int y = 0; y <ilgis; y ++) {for (int x = 0; x <plotis; x ++) {tinklelis [x] [y] = naujas JButton ("("+ x+","+y+")"); frame.add (tinklelis [x] [y]); // prideda mygtuką prie tinklelio}} frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE); frame.pack (); frame.setVisible (true); }…
Mygtukų pridėjimas prie rėmo:
for (int y = 0; y <ilgis; y ++) {for (int x = 0; x <plotis; x ++) {grid [x] [y] = new JButton ("("+x+","+y+") "); frame.add (tinklelis [x] [y]); }}…
Sukurkite mygtukų tinklelio pavyzdį:
public static void main (String args) {new ButtonGrid (3, 3); // sukuria naują ButtonGrid su 2 parametrais}…
Galutinis kodas:
importuoti javax.swing. JFrame; // importuoja JFrame biblioteką importuoti javax.swing. JButton; // importuoja JButton biblioteką importuoti java.awt. GridLayout; // importuoja GridLayout bibliotekos viešąją klasę ButtonGrid {JFrame frame = new JFrame (); // sukuria rėmelį JButton tinklelis; // įvardija mygtukų tinklelį viešai ButtonGrid (int plotis, int ilgis) {// konstruktorius frame.setLayout (naujas GridLayout (plotis, ilgis)); // nustatyti išdėstymo tinklelį = naujas JButton [plotis] [ilgis]; // skirti tinklelio dydį (int y = 0; y <ilgis; y ++) {for (int x = 0; x <plotis; x ++) {tinklelis [x] [y] = naujas JButton ("("+ x+","+y+")"); // sukuria naują mygtukų rėmelį.add (tinklelis [x] [y]); // prideda mygtuką prie tinklelio}} frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE); frame.pack (); // nustato tinkamą rėmelio rėmo dydį.setVisible (true); // padaro rėmelį matomą} public static void main (String args) {new ButtonGrid (3, 3); // padaro naują ButtonGrid su 2 parametrais}}
importuoti javax.swing. JFrame; // importuoja JFrame biblioteką importuoti javax.swing. JButton; // importuoja JButton biblioteką importuoti java.awt. GridLayout; // importuoja GridLayout biblioteką
viešosios klasės „ButtonGrid“{
JFrame kadras = naujas JFrame (); // sukuria rėmelį JButton tinklelis; // įvardija mygtukų tinklelį
public ButtonGrid (int plotis, int ilgis) {// konstruktoriaus frame.setLayout (naujas GridLayout (plotis, ilgis)); // nustatyti išdėstymo tinklelį = naujas JButton [plotis] [ilgis]; // skirti tinklelio dydį (int y = 0; y <ilgis; y ++) {for (int x = 0; x <plotis; x ++) {tinklelis [x] [y] = naujas JButton ("("+ x+","+y+")"); // sukuria naują mygtukų rėmelį.add (tinklelis [x] [y]); // prideda mygtuką prie tinklelio}} frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE); frame.pack (); // nustato tinkamą rėmelio rėmo dydį.setVisible (true); // padaro rėmelį matomą} public static void main (String args) {new ButtonGrid (3, 3); // padaro naują ButtonGrid su 2 parametrais}