Hur man gör ett GUI -nät i Java (med bilder)

Innehållsförteckning:

Hur man gör ett GUI -nät i Java (med bilder)
Hur man gör ett GUI -nät i Java (med bilder)

Video: Hur man gör ett GUI -nät i Java (med bilder)

Video: Hur man gör ett GUI -nät i Java (med bilder)
Video: Inkscape Custom Brushes: How to Make and Use Brush Sets Tutorial 2024, Maj
Anonim

The Grid gör inget speciellt i detta skede, men med lite forskning kan du lägga till actionlyssnare och lite logik för att göra ett enkelt 2D-spel som tic-tac-toe eller mer komplicerade sådana som Battleship.

Obs! Denna artikel använder Eclipse för alla exemplen så att saker kan vara olika beroende på din IDE. Detta borde vara väldigt likt det du behöver i JCreator, men det är ganska värdelöst för en GUI -baserad IDE som NetBeans, främst på grund av drag -och -släpp -metoden för NetBeans.

Steg

Skapa ett GUI -nät i Java Steg 1
Skapa ett GUI -nät i Java Steg 1

Steg 1. Skapa ett Java -projekt

Detta är ganska enkelt. Slå på din IDE och skapa ett nytt projekt. Kalla det vad du än önskar. Exemplet kommer att vara buttongrid.

Det här namnet spelar egentligen ingen roll alls eftersom det bara är filnamnet som det kommer att ges

Skapa ett GUI -nät i Java Steg 2
Skapa ett GUI -nät i Java Steg 2

Steg 2. Skapa en Java -klass med en huvudmetod

Skapa en ny klass och ge den vad du vill. Exemplet kommer att vara buttongrid. För en Eclipse -användare vill du kryssa i rutan som kallas public static void main (string args), så du behöver inte skriva den när du startar.

Det här namnet är viktigare än det föregående eftersom det måste vara ett enda ord, annars kan det inte användas

Skapa ett GUI -rutnät i Java Steg 3
Skapa ett GUI -rutnät i Java Steg 3

Steg 3. Importera bibliotek

Detta ger all information du behöver för att skriva din kod till den här koden. Du måste importera javax.swing. JFrame, javax.swing. JButton och java.awt. Gridlayout. Dessa läggs före början av klassen, någonstans på rader mellan 1 till 3, den ordning de finns där spelar ingen roll.

Skapa ett GUI -nät i Java Steg 4
Skapa ett GUI -nät i Java Steg 4

Steg 4. Skapa en konstruktör

Konstruktören gör en ny instans av buttongrid -klassen så att många olika knappnät kan ha separat information. Alla konstruktörer måste heta samma som sin klass. Konstruktörer behöver inget innan det, men "offentligt" sätts ofta dit för enkel referens. Konstruktörer placeras ofta som den första metoden i en klass, så den går direkt efter klassnamnet, den måste dock placeras i klassen. Buttongrid -konstruktören behöver parametrar som sätts inom parentes efter konstruktörens namn. Parametrarna i detta exempel är heltal 'x' och 'y'.

Skapa ett GUI -rutnät i Java Steg 5
Skapa ett GUI -rutnät i Java Steg 5

Steg 5. Skapa ram:

  1. Ramen måste namnges. För att se till att den kan refereras utanför ButtonGrid -konstruktörsmetoden placerar du den utanför sidan av metoden, men inom klassen. De flesta variabler namnges högst upp i klassen precis före konstruktören. För att skapa en ny ram skriver du: JFrame frame = new JFrame ();
  2. Inuti konstruktörsmetoden måste vi se till att alla knappar sätts i rutnätets layout. För att göra detta ställer vi in ramens layout genom att skriva: frame.setLayout (nytt GridLayout (x, y));
  3. Inte nödvändigtvis obligatoriskt, men för att få ramen att stänga när du trycker på "x" -knappen i det övre högra hörnet måste vi lägga till raden: frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE);
  4. För att göra ramen i rätt storlek så att allt passar behöver vi köra pack -kommandot: frame.pack ();
  5. Slutligen för ramen måste vi göra det så att det är synligt: frame.setVisible (true);

    Skapa ett GUI -nät i Java Steg 6
    Skapa ett GUI -nät i Java Steg 6

    Steg 6. Skapa knappnät:

    1. Knapparna som användaren interagerar med måste göras, men eftersom vi inte vet hur många vi behöver måste de namnges först. Så precis under raden där du skapar ram skapar du knapparna: JButton rutnät; De två uppsättningarna av hakparenteser är där för att säga att JButtons i rutnätet hålls i ett tvådimensionellt format, om det bara fanns en uppsättning hakparenteser så skulle det helt enkelt vara en rad JButtons, som fortfarande fungerar, det är bara lättare att hänvisa till vilken knapp som skapas eller interageras med när den är tvådimensionell.
    2. JButton har fått namn, men vi måste fortfarande säga hur många knappar det finns. Du måste lägga till en kodrad i konstruktören som anger mängden: grid = new JButton [width] [length];
    3. Nu när det har fastställts att det kommer att finnas ett visst antal knappar måste varje skapas. Det enklaste sättet att göra detta är med två för slingor, en för x-axeln, en för y-axeln. Inuti de två öglorna gör vi en ny knapp, och för enkel referens lägger exemplet in text inuti varje knapp så att vi vet vilken knapp i den tvådimensionella matrisen som är var. För att skapa en knapp måste du lägga in rutan [x] [y] = ny JButton ("("+x+","+y+")");

      Skapa ett GUI -rutnät i Java Steg 7
      Skapa ett GUI -rutnät i Java Steg 7

      Steg 7. Lägg till knappar i ramen

      Inuti slingan måste vi sätta knapparna på ramen med ett enkelt kommando: frame.add (rutnät [x] [y]);

      Skapa ett GUI -rutnät i Java Steg 8
      Skapa ett GUI -rutnät i Java Steg 8

      Steg 8. Gör ButtonGrid Instance

      I din huvudklass typ: ny ButtonGrid (3, 3); De två treorna gör är ett 3 x 3 rutnät, och alla två positiva tal kan sättas in där.

      Skapa ett GUI -nät i Java Steg 9
      Skapa ett GUI -nät i Java Steg 9

      Steg 9. Kör programmet

      För att göra detta i förmörkelse, tryck på Ctrl+F11

      Metod 1 av 1: Stegkod

      Huvudklassen:

      public class ButtonGrid {public static void main (String args) {}}

      Import:

      importera javax.swing. JFrame; importera javax.swing. JButton; importera java.awt. GridLayout; public class ButtonGrid {…

      Konstruktörkod:

      public class ButtonGrid {public ButtonGrid (int bredd, int längd) {}} …

      Ramkod:

      public class ButtonGrid {JFrame frame = new Jframe (); public ButtonGrid (int width, int length) {frame.setLayout (new GridLayout (width, length)); frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE); ram.pack (); frame.setVisible (true); }}…

      Knappnätskod:

      | JFrame -ram = ny JFrame (); // skapar ram JButton rutnät; // namn på rutnätet med knappar public ButtonGrid (int width, int length) {// constructor with 2 parameters frame.setLayout (new GridLayout (width, length)); // set layout of frame grid = new JButton [width] [length]; // fördela rutnätets storlek för (int y = 0; y <längd; y ++) {för (int x = 0; x <bredd; x ++) {rut [x] [y] = ny JButton ("("+ x+","+y+")"); ram.add (rutnät [x] [y]); // lägger till knapp i rutnät}} frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE); ram.pack (); frame.setVisible (true); }…

      Lägga till knappar i ram:

      för (int y = 0; y <längd; y ++) {för (int x = 0; x <bredd; x ++) {rut [x] [y] = ny JButton ("("+x+","+y+") "); ram.add (rutnät [x] [y]); }}…

      Gör en knappnätinstans:

      public static void main (String args) {new ButtonGrid (3, 3); // gör nytt ButtonGrid med 2 parametrar} …

      Slutlig kod:

      importera javax.swing. JFrame; // importerar JFrame bibliotek import javax.swing. JButton; // importerar JButton bibliotek import java.awt. GridLayout; // importerar GridLayout -bibliotekets offentliga klass ButtonGrid {JFrame frame = new JFrame (); // skapar ram JButton rutnät; // namn på rutnätet med knappar public ButtonGrid (int width, int length) {// constructor frame.setLayout (new GridLayout (width, length)); // set layout grid = new JButton [width] [length]; // fördela rutnätets storlek för (int y = 0; y <längd; y ++) {för (int x = 0; x <bredd; x ++) {rut [x] [y] = ny JButton ("("+ x+","+y+")"); // skapar ny knappram.add (rutnät [x] [y]); // lägger till knapp i rutnät}} frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE); ram.pack (); // anger lämplig storlek för ramram.setVisible (true); // gör ramen synlig} public static void main (String args) {new ButtonGrid (3, 3); // makes new ButtonGrid with 2 parameters}}

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

      public class ButtonGrid {

      JFrame -ram = ny JFrame (); // skapar ram JButton rutnät; // namn på rutnätet med knappar

      public ButtonGrid (int width, int length) {// constructor frame.setLayout (new GridLayout (width, length)); // set layout grid = new JButton [width] [length]; // fördela rutnätets storlek för (int y = 0; y <längd; y ++) {för (int x = 0; x <bredd; x ++) {rut [x] [y] = ny JButton ("("+ x+","+y+")"); // skapar ny knappram.add (rutnät [x] [y]); // lägger till knapp i rutnät}} frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE); ram.pack (); // anger lämplig storlek för ramram.setVisible (true); // gör ramen synlig} public static void main (String args) {new ButtonGrid (3, 3); // makes new ButtonGrid with 2 parameters}

Rekommenderad: