Hoe om 'n GUI -rooster in Java te maak (met foto's)

INHOUDSOPGAWE:

Hoe om 'n GUI -rooster in Java te maak (met foto's)
Hoe om 'n GUI -rooster in Java te maak (met foto's)

Video: Hoe om 'n GUI -rooster in Java te maak (met foto's)

Video: Hoe om 'n GUI -rooster in Java te maak (met foto's)
Video: Гениальные Лайфхаки, Которые Действительно Работают ▶3 2024, Mei
Anonim

Die Grid doen in hierdie stadium niks besonders nie, maar met 'n bietjie navorsing kan u aksieluisteraars en 'n bietjie logika byvoeg om 'n eenvoudige 2D-speletjie soos tic-tac-toe of meer ingewikkelde speletjies soos Battleship te maak.

Nota: Hierdie artikel gebruik Eclipse vir al die voorbeelde, sodat dinge anders kan wees, afhangende van u IDE. Dit moet baie soortgelyk wees aan wat u in JCreator benodig, maar dit is nogal nutteloos vir 'n GUI -gebaseerde IDE soos NetBeans, veral as gevolg van die sleep -en -los -metode van NetBeans.

Stappe

Maak 'n GUI -rooster in Java Stap 1
Maak 'n GUI -rooster in Java Stap 1

Stap 1. Skep 'n Java -projek

Dit is redelik eenvoudig. Skakel u IDE aan en skep 'n nuwe projek. Noem dit wat jy wil. Die voorbeeld is buttongrid.

Hierdie naam maak glad nie saak nie, aangesien dit slegs die lêernaam is wat dit gegee sal word

Maak 'n GUI -rooster in Java Stap 2
Maak 'n GUI -rooster in Java Stap 2

Stap 2. Skep 'n Java -klas met 'n hoofmetode

Skep 'n nuwe klas en noem dit wat u wil hê. Die voorbeeld is buttongrid. Vir 'n Eclipse -gebruiker wil u die blokkie met die naam public static void main (string args) merk, sodat u dit nie hoef in te tik wanneer u begin nie.

Hierdie naam is belangriker as die vorige naam, omdat dit as 'n enkele woord moet wees, anders is dit nie bruikbaar nie

Maak 'n GUI -rooster in Java Stap 3
Maak 'n GUI -rooster in Java Stap 3

Stap 3. Voer biblioteke in

Dit bring al die inligting wat u nodig het om u kode te skryf, by hierdie kode. U moet javax.swing. JFrame, javax.swing. JButton en java.awt. Gridlayout invoer. Dit word voor die begin van die klas geplaas, êrens op reëls tussen 1 en 3, die volgorde waarin hulle is, maak nie saak nie.

Maak 'n GUI -rooster in Java Stap 4
Maak 'n GUI -rooster in Java Stap 4

Stap 4. Skep 'n konstruktor

Die konstrukteur maak 'n nuwe voorbeeld van die buttongrid -klas, sodat baie verskillende knoppie -roosters afsonderlike inligting kan hê. Alle konstrukteurs moet dieselfde as hul klas genoem word. Konstrukteurs het niks daarvoor nodig nie, maar 'publiek' word gereeld daar gestel om dit maklik te verwys. Konstrukteurs word dikwels as die eerste metode in 'n klas geplaas, dus dit gaan regs agter die klasnaam, maar dit moet egter binne die klas geplaas word. Die bouer se konstruktor benodig parameters wat tussen hakies geplaas word na die naam van die konstruktor. Die parameters in hierdie voorbeeld is heelgetalle 'x' en 'y'.

Maak 'n GUI -rooster in Java Stap 5
Maak 'n GUI -rooster in Java Stap 5

Stap 5. Skep raam:

  1. Die raam moet 'n naam hê. Om seker te maak dat daar buite die ButtonGrid -konstruktormetode verwys kan word, plaas u dit buite die metode, maar binne die klas. Die meeste veranderlikes word bo -aan die klas genoem, net voor die konstruktor. Om 'n nuwe raam te skep, tik jy: JFrame raam = nuwe JFrame ();
  2. Binne die konstruktormetode moet ons seker maak dat al die knoppies in die roosteruitleg geplaas word. Om dit te kan doen, stel ons die raamuitleg in deur te tik: frame.setLayout (nuwe GridLayout (x, y));
  3. Nie noodwendig verpligtend nie, maar om die raam toe te maak as u op die 'x' -knoppie in die regter boonste hoek druk, moet ons die reël byvoeg: frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE);
  4. Om die raam die regte grootte te maak sodat alles pas, moet ons die pakopdrag uitvoer: frame.pack ();
  5. Laastens vir die raam moet ons dit so duidelik maak: frame.setVisible (waar);

    Maak 'n GUI -rooster in Java Stap 6
    Maak 'n GUI -rooster in Java Stap 6

    Stap 6. Skep knoppie rooster:

    1. Die knoppies waarmee die gebruiker in wisselwerking is, moet gemaak word, maar aangesien ons nie weet hoeveel ons benodig nie, moet hulle eers genoem word. So, reg onder die lyn waar u 'n raam skep, maak die knoppies: JButton rooster; Die twee stelle vierkantige hakies is daar om te sê dat die JButton's in die rooster in 'n tweedimensionele formaat gehou word; as daar net een stel vierkantige hakies was, sou dit eenvoudig 'n lyn van JButton's wees, wat steeds werk, dit is net makliker om te verwys na watter knoppie geskep word of interaksie het as dit tweedimensioneel is.
    2. Die JButton's is vernoem, maar ons moet nog sê hoeveel knoppies daar is. U moet 'n reël kode by die konstruktor voeg wat die hoeveelheid bepaal: grid = new JButton [breedte] [lengte];
    3. Noudat daar vasgestel is dat daar 'n sekere aantal knoppies sal wees, moet elkeen gemaak word. Die maklikste manier om dit te doen is met twee vir lusse, een vir die x-as, een vir die y-as. Binne die twee lusse maak ons 'n nuwe knoppie, en ter wille van verwysing plaas die teks teks in elke knoppie, sodat ons weet watter knoppie in die tweedimensionele skikking waar is. Om 'n knoppie te maak, moet u binne die lus rooster [x] [y] = nuwe JButton ("("+x+","+y+")") plaas;

      Maak 'n GUI -rooster in Java Stap 7
      Maak 'n GUI -rooster in Java Stap 7

      Stap 7. Voeg knoppies by die raam

      Binne die lus moet ons die knoppies op die raam plaas met 'n eenvoudige opdrag: frame.add (rooster [x] [y]);

      Maak 'n GUI -rooster in Java Stap 8
      Maak 'n GUI -rooster in Java Stap 8

      Stap 8. Maak ButtonGrid -instansie

      In u hoofklas tipe: nuwe ButtonGrid (3, 3); Die twee drieë maak 'n 3 by 3 rooster, en enige twee positiewe getalle kan daar ingevoeg word.

      Maak 'n GUI -rooster in Java Stap 9
      Maak 'n GUI -rooster in Java Stap 9

      Stap 9. Begin program

      Om dit in verduistering te doen, druk Ctrl+F11

      Metode 1 van 1: Stappe -kode

      Die hoofklas:

      openbare klas ButtonGrid {public static void main (String args) {}}

      Invoer:

      invoer javax.swing. JFrame; invoer javax.swing. JButton; voer java.awt. GridLayout in; openbare klas ButtonGrid {…

      Konstrukteurskode:

      openbare klas ButtonGrid {public ButtonGrid (int breedte, int lengte) {}} …

      Raamkode:

      openbare klas ButtonGrid {JFrame raam = nuwe Jframe (); openbare ButtonGrid (int breedte, int lengte) {frame.setLayout (nuwe GridLayout (breedte, lengte)); frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE); raam.pak (); frame.setVisible (waar); }}…

      Knoppie rooster kode:

      | JFrame raam = nuwe JFrame (); // skep raam JButton rooster; // noem die rooster van knoppies openbare ButtonGrid (int breedte, int lengte) {// konstruktor met 2 parameters frame.setLayout (nuwe GridLayout (breedte, lengte)); // stel uitleg van raamrooster = nuwe JButton [breedte] [lengte]; // ken die grootte van die rooster toe vir (int y = 0; y <lengte; y ++) {vir (int x = 0; x <breedte; x ++) {rooster [x] [y] = nuwe JButton ("("+ x+","+y+")"); raam.add (rooster [x] [y]); // voeg knoppie by rooster}} frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE); raam.pak (); frame.setVisible (waar); }…

      Voeg knoppies by die raam:

      for (int y = 0; y <length; y ++) {for (int x = 0; x <width; x ++) {grid [x] [y] = new JButton ("("+x+","+y+") "); raam.add (rooster [x] [y]); }}…

      Maak 'n knoppie -rooster -instansie:

      openbare statiese leemte hoof (String args) {nuwe ButtonGrid (3, 3); // maak nuwe ButtonGrid met 2 parameters} …

      Finale kode:

      invoer javax.swing. JFrame; // invoer JFrame biblioteek invoer javax.swing. JButton; // invoer JButton biblioteek invoer java.awt. GridLayout; // invoer GridLayout biblioteek openbare klas ButtonGrid {JFrame raam = nuwe JFrame (); // skep raam JButton rooster; // noem die knoppie rooster openbaar ButtonGrid (int breedte, int lengte) {// constructor frame.setLayout (nuwe GridLayout (breedte, lengte)); // stel uitlegrooster = nuwe JButton [breedte] [lengte]; // ken die grootte van die rooster toe vir (int y = 0; y <lengte; y ++) {vir (int x = 0; x <breedte; x ++) {rooster [x] [y] = nuwe JButton ("("+ x+","+y+")"); // skep nuwe knoppie raam.add (rooster [x] [y]); // voeg knoppie by rooster}} frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE); raam.pak (); // stel die gepaste grootte vir raamraam.setVisibel (waar); // maak raam sigbaar} openbare statiese leemte hoof (String args) {nuwe ButtonGrid (3, 3); // maak nuwe ButtonGrid met 2 parameters}}

      invoer javax.swing. JFrame; // invoer JFrame biblioteek invoer javax.swing. JButton; // invoer JButton biblioteek invoer java.awt. GridLayout; // voer GridLayout -biblioteek in

      openbare klas ButtonGrid {

      JFrame raam = nuwe JFrame (); // skep raam JButton rooster; // noem die rooster van knoppies

      public ButtonGrid (int width, int length) {// constructor frame.setLayout (nuwe GridLayout (breedte, lengte)); // stel uitlegrooster = nuwe JButton [breedte] [lengte]; // ken die grootte van die rooster toe vir (int y = 0; y <lengte; y ++) {vir (int x = 0; x <breedte; x ++) {rooster [x] [y] = nuwe JButton ("("+ x+","+y+")"); // skep nuwe knoppie raam.add (rooster [x] [y]); // voeg knoppie by rooster}} frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE); raam.pak (); // stel die gepaste grootte vir raamraam.setVisibel (waar); // maak raam sigbaar} openbare statiese leemte hoof (String args) {nuwe ButtonGrid (3, 3); // maak nuwe ButtonGrid met 2 parameters}

Aanbeveel: