Wku

Hur man gör ett GUI rutnät i java

Gallret gör inget speciellt i detta skede, men med lite forskning, kan du lägga actionlisteners och lite logik för att göra en enkel 2D-spel som Tic-tac-toe, eller mer komplicerade sådana som Battleship.

Obs: Den här artikeln använder Eclipse alla exempel så saker kan vara olika beroende på din IDE. Detta bör vara mycket lik vad du behöver i JCreator, men det är ganska meningslöst för en GUI baserad IDE som NetBeans men främst på grund av dra och släpp-metoden för NetBeans.

Steg

Hur man gör ett GUI rutnät i java. Skapa ett Java-projekt.
Hur man gör ett GUI rutnät i java. Skapa ett Java-projekt.
  1. 1
    Skapa ett Java-projekt. Detta är tämligen enkelt. Slå på din IDE och skapa ett nytt projekt. Kalla det vad du vill. Exemplet kommer att buttongrid.
    • Detta namn spelar egentligen ingen roll alls eftersom det bara filnamnet som det kommer att ges.
  2. 2
    Skapa en java klass med en main-metod. Skapa en ny klass och namnge det vad du vill. Exemplet kommer att buttongrid. För en Eclipse användare du vill tic rutan som heter public static void main (String [] args), så att du inte behöver skriva det när du startar.
    • Detta namn är viktigare än den tidigare eftersom det kommer att vara så enstaka ord eller annars kommer det inte att vara användbara.
  3. 3
    Import bibliotek. Detta ger all information du behöver för att skriva din kod till denna kod. Du måste importera javax.swing.JFrame, javax.swing.JButton och java.awt.Gridlayout. Dessa sätts före början av klassen, några där på linjer mellan 1 till 3, inte den ordning de är på det ingen roll.
  4. 4
    Skapa en konstruktör. Konstruktören gör en ny instans av buttongrid klassen möjliggör många olika buttongrid är att alla har separat information. Alla konstruktörer måste namnges på samma sätt som deras klass. Konstruktörer behöver inte något innan det, men "allmänheten" är ofta placerade där för enkelhetens skull. Konstruktorer placeras ofta som den första metoden i en klass, så det går rätt efter klassnamnet, måste den emellertid placeras inom klassen. Den buttongrid Konstruktören behöver parametrar, som sätts inom parentes efter namnet på konstruktören. Parametrarna i det här exemplet är heltal "x" och "y".
  5. 5
    Skapa frame:
    1. Ramen måste namnges. För att se till att den kan refereras utanför ButtonGrid konstruktormetoden du placerar ut den sidan av denna metod, men inom klassen. De flesta variabler namnges i toppen av klassen precis innan konstruktören. För att skapa en ny ram du typ: JFrame frame = new JFrame ();
    2. Inne konstruktormetoden måste vi se till att alla knappar sätts i stödrasterlayout. För att göra detta har vi satt layouten på ramen genom att skriva: frame.setLayout (ny GridLayout (x, y));
    3. Inte nödvändigtvis obligatoriskt, men att göra ramen nära 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 lämplig storlek så allt passar vi måste köra förpackningen kommandot: frame.pack ();
    5. Slutligen för ramen som vi behöver för att göra det så det är synligt: ​​frame.setVisible (true);
  6. 6
    Skapa knappen grid:
    1. De knappar som användaren interagerar med behöver göras, men eftersom vi inte vet hur många vi behöver, de måste namnges först. Så precis nedanför den rad där du skapar ram skapa knappar: JButton [] [] grid, De två uppsättningarna av hakparenteser är det att säga att JButton är i nätet hålls i ett tvådimensionellt format, om det fanns bara en uppsättning hakparenteser då det helt enkelt skulle vara en linje av JButton s, som fortfarande fungerar, det är bara lättare att referera till vilken knapp skapas eller interagerat med när det är tvådimensionellt.
    2. Den JButton s har namngett, men vi har fortfarande att säga hur många knappar som finns. Du måste lägga till en rad kod i konstruktorn som ställer in: Grid = new Button [bredd] [längd];
    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å loopar, en för x-axeln, en för y-axeln. Inuti de två slingorna vi gör en ny knapp, och för enkelhetens skull exemplet sätter text inuti varje knapp så vi vet vilken knapp i två-dimensionell array är där. Om du vill skapa en knapp, innanför slingan du behöver för att sätta galler [x] [y] = new Button ("(" + x + "," + y + ")");
  7. 7
    Lägg till knappar till ram. Inuti loopen måste vi sätta knapparna på ramen med ett enkelt kommando: frame.add (grid [x] [y]);
  8. 8
    Gör buttongrid instans. I din huvudklass Typ: ny ButtonGrid (3,3), De två treor gör är en 3 x 3 rutnät, och helst två positiva tal kan sättas in där.
  9. 9
    Kör programmet. För att göra detta i Eclipse tryck Ctrl + F11
  10. 10
    Ta reda på mer om Java: http://java.sun.com/j2se/1.4.2/docs/api/index-files/index-1.html
    1. Mer med knappar: För att knapparna ser upp något ActionListener ()

    Steps kod

    • Den största klassen:
      public class ButtonGrid {  public static void main (String [] args) {    }  } 
    • Import:
      
    • Konstruktör Kod:
      public class ButtonGrid {  offentliga ButtonGrid (int bredd, int längd) {  }  } ... 
    • Frame Code:
      public class ButtonGrid {  JFrame frame = new JFrame ();  offentliga ButtonGrid (int bredd, int längd) { . ram setLayout (ny GridLayout (bredd, längd));  ram setDefaultCloseOperation (JFrame EXIT_ON_CLOSE.).;   frame pack ().;   ram setVisible (true).;   }  } ... 
    • Knapp Grid Code:
      | JFrame frame = new JFrame (); / / skapar frame  JButton [] [] grid, / / namn på rutnät av knappar    offentliga ButtonGrid (int bredd, int längd) {/ / konstruktor med 2 parametrar  frame setLayout (nytt GridLayout (bredd, längd)),. / / set layout ram  grid = new Button [bredd] [längd], / / allokera storleken på rutnätet  for (int y = 0; y <längd, y + +) {   for (int x = 0, x <bredd, x + +) {  grid [x] [y] = new Button ("(" + x + "," + y + ")");  . ram lägg (grid [x] [y]), / / lägger knappen grid  }  }  ram setDefaultCloseOperation (JFrame EXIT_ON_CLOSE.).;   frame pack ().;   ram setVisible (true).;  } ... 
    • Lägga till knappar till Ram:
      for (int y = 0; y <längd, y + +) {   for (int x = 0, x <bredd, x + +) {  grid [x] [y] = new Button ("(" + x + "," + y + ")");   ram lägg (grid [x] [y]).;  }  } ... 
    • Göra en instans knapp rutnät:
      public static void main (String [] args) {  nya ButtonGrid (3, 3), / / gör ny ButtonGrid med 2 parametrar  } ... 
    • Slutlig Kod:
      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 (); / / skapar frame  JButton [] [] grid, / / namn på rutnät av knappar    offentliga ButtonGrid (int bredd, int längd) {/ / konstruktor  frame setLayout (nytt GridLayout (bredd, längd)),. / / set layout  grid = new Button [bredd] [längd], / / allokera storleken på rutnätet  for (int y = 0; y <längd, y + +) {  for (int x = 0, x <bredd, x + +) {  grid [x] [y] = new Button ("(" + x + "," + y + ")"); / / skapar ny knapp . ram lägg (grid [x] [y]), / / lägger knappen grid  }  }  ram setDefaultCloseOperation (JFrame EXIT_ON_CLOSE.).;  frame pack ();. / / set lämplig storlek för ram  ram setVisible (true);. / / gör frame synligt  }  public static void main (String [] args) {  nya ButtonGrid (3, 3), / / gör ny ButtonGrid med 2 parametrar  }  } 

    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 (); / / skapar frame  JButton [] [] grid, / / ​​namn på rutnät av knappar   offentliga ButtonGrid (int bredd, int längd) {/ / konstruktor  frame.setLayout (ny GridLayout (bredd, längd)), / / ​​set layout  grid = new Button [bredd] [längd], / / ​​allokera storleken på rutnätet  for (int y = 0; y <längd, y + +) {  for (int x = 0, x <bredd, x + +) {  grid [x] [y] = new Button ("(" + x + "," + y + ")"); / / skapar ny knapp   frame.add (grid [x] [y]), / / ​​lägger knappen grid  }  }  frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);  frame.pack (), / / ​​set lämplig storlek för ram  frame.setVisible (true); / / gör frame synligt  }  public static void main (String [] args) {  nya ButtonGrid (3,3);/ / gör ny ButtonGrid med 2 parametrar  }