Hvordan lage et GUI -rutenett i Java (med bilder)

Innholdsfortegnelse:

Hvordan lage et GUI -rutenett i Java (med bilder)
Hvordan lage et GUI -rutenett i Java (med bilder)

Video: Hvordan lage et GUI -rutenett i Java (med bilder)

Video: Hvordan lage et GUI -rutenett i Java (med bilder)
Video: Krøll og style håret på tre måter | Tips fra DEFINE SALONGEN 2024, Kan
Anonim

The Grid gjør ingenting spesielt på dette stadiet, men med litt research kan du legge til actionlyttere og litt logikk for å lage et enkelt 2D-spill som tic-tac-toe, eller mer kompliserte som Battleship.

Merk: Denne artikkelen bruker Eclipse for alle eksemplene, så ting kan være forskjellige avhengig av IDE. Dette burde være veldig likt det du trenger i JCreator, men det er ganske ubrukelig for en GUI -basert IDE som NetBeans, hovedsakelig på grunn av dra og slipp -metoden til NetBeans.

Trinn

Lag et GUI -rutenett i Java Trinn 1
Lag et GUI -rutenett i Java Trinn 1

Trinn 1. Opprett et Java -prosjekt

Dette er ganske enkelt. Slå på IDE og opprett et nytt prosjekt. Kall det hva du måtte ønske. Eksemplet vil være buttongrid.

Dette navnet spiller egentlig ingen rolle, siden det bare er filnavnet det vil bli gitt

Lag et GUI -rutenett i Java Trinn 2
Lag et GUI -rutenett i Java Trinn 2

Trinn 2. Lag en Java -klasse med en hovedmetode

Lag en ny klasse og navngi den hva du vil. Eksemplet vil være buttongrid. For en Eclipse -bruker vil du krysse av i boksen som heter public static void main (string args), så du trenger ikke å skrive den når du starter.

Dette navnet er viktigere enn det forrige fordi det må være som et enkelt ord, ellers vil det ikke være brukbart

Lag et GUI -rutenett i Java Trinn 3
Lag et GUI -rutenett i Java Trinn 3

Trinn 3. Importer biblioteker

Dette bringer all informasjonen du trenger for å skrive koden din til denne koden. Du må importere javax.swing. JFrame, javax.swing. JButton og java.awt. Gridlayout. Disse er satt før begynnelsen av klassen, et sted på linjene mellom 1 til 3, rekkefølgen de er på der spiller ingen rolle.

Lag et GUI -rutenett i Java Trinn 4
Lag et GUI -rutenett i Java Trinn 4

Trinn 4. Lag en konstruktør

Konstruktøren lager en ny forekomst av buttongrid -klassen, slik at mange forskjellige knappgitter alle kan ha separat informasjon. Alle konstruktører må kalle det samme som sin klasse. Konstruktører trenger ikke noe før det, men "offentlig" blir ofte satt der for enkel referanse. Konstruktører plasseres ofte som den første metoden i en klasse, så den går rett etter klassens navn, men den må imidlertid plasseres i klassen. Buttongrid -konstruktøren trenger parametere, som settes i parentes etter navnet på konstruktøren. Parametrene i dette eksemplet er heltall 'x' og 'y'.

Lag et GUI -rutenett i Java Trinn 5
Lag et GUI -rutenett i Java Trinn 5

Trinn 5. Lag ramme:

  1. Rammen må navngis. For å sikre at den kan refereres til utenfor ButtonGrid -konstruktormetoden, plasserer du den utenfor siden av metoden, men innenfor klassen. De fleste variabler er navngitt øverst i klassen rett før konstruktøren. For å lage en ny ramme skriver du: JFrame frame = new JFrame ();
  2. Inne i konstruktormetoden må vi sørge for at alle knappene er plassert i rutenettoppsettet. For å gjøre dette setter vi rammeoppsettet ved å skrive: frame.setLayout (nytt GridLayout (x, y));
  3. Ikke nødvendigvis obligatorisk, men for å få rammen til å lukke når du trykker på "x" -knappen øverst til høyre må vi legge til linjen: frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE);
  4. For å gjøre rammen til en riktig størrelse slik at alt passer, trenger vi å kjøre pack -kommandoen: frame.pack ();
  5. Til slutt for rammen må vi gjøre det slik at det er synlig: frame.setVisible (true);

    Lag et GUI -rutenett i Java Trinn 6
    Lag et GUI -rutenett i Java Trinn 6

    Trinn 6. Lag knappnett:

    1. Knappene som brukeren samhandler med må lages, men siden vi ikke vet hvor mange vi trenger, må de navngis først. Så rett under linjen der du lager rammen, lag knappene: JButton rutenett; De to settene med firkantede parenteser er der for å si at JButtons i rutenettet er holdt i et todimensjonalt format, hvis det bare var ett sett med firkantede parenteser, ville det ganske enkelt være en linje med JButton, som fortsatt fungerer, det er bare lettere å referere til hvilken knapp som opprettes eller samhandles med når den er todimensjonal.
    2. JButton er navngitt, men vi må fortsatt si hvor mange knapper det er. Du må legge til en kodelinje i konstruktøren som angir mengden: grid = ny JButton [bredde] [lengde];
    3. Nå som det er bestemt at det vil være et visst antall knapper, må hver opprettes. Den enkleste måten å gjøre dette på er med to for sløyfer, en for x-aksen, en for y-aksen. Inne i de to løkkene lager vi en ny knapp, og for enkel referanse setter eksemplet tekst inne i hver knapp slik at vi vet hvilken knapp i det todimensjonale arrayet er hvor. For å lage en knapp må du sette rutenettet [x] [y] = ny JButton ("("+x+","+y+")");

      Lag et GUI -rutenett i Java Trinn 7
      Lag et GUI -rutenett i Java Trinn 7

      Trinn 7. Legg til knapper i rammen

      Inne i løkken må vi sette knappene på rammen med en enkel kommando: frame.add (rutenett [x] [y]);

      Lag et GUI -rutenett i Java Trinn 8
      Lag et GUI -rutenett i Java Trinn 8

      Trinn 8. Lag ButtonGrid -forekomst

      I din hovedklassetype: ny ButtonGrid (3, 3); De to treene er et 3 x 3 rutenett, og to positive tall kan settes inn der.

      Lag et GUI -rutenett i Java Trinn 9
      Lag et GUI -rutenett i Java Trinn 9

      Trinn 9. Kjør programmet

      For å gjøre dette i formørkelse, trykk Ctrl+F11

      Metode 1 av 1: Trinnkode

      Hovedklassen:

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

      Import:

      importer javax.swing. JFrame; import javax.swing. JButton; importer java.awt. GridLayout; offentlig klasse ButtonGrid {…

      Konstruktørkode:

      offentlig klasse ButtonGrid {public ButtonGrid (int bredde, int lengde) {}} …

      Rammekode:

      public class ButtonGrid {JFrame frame = new Jframe (); public ButtonGrid (int bredde, int lengde) {frame.setLayout (nytt GridLayout (bredde, lengde)); frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE); ramme. pakke (); frame.setVisible (true); }}…

      Knappnettkode:

      | JFrame -ramme = ny JFrame (); // lager rammen JButton rutenett; // navngir rutenettet for knapper offentlig ButtonGrid (int bredde, int lengde) {// konstruktør med to parametere frame.setLayout (nytt GridLayout (bredde, lengde)); // sett oppsett av rammenett = nytt JButton [bredde] [lengde]; // tildel størrelsen på rutenettet for (int y = 0; y <length; y ++) {for (int x = 0; x <width; x ++) {grid [x] [y] = new JButton ("("+ x+","+y+")"); frame.add (rutenett [x] [y]); // legger til knapp i rutenettet}} frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE); ramme. pakke (); frame.setVisible (true); }…

      Legge til knapper i rammen:

      for (int y = 0; y <length; y ++) {for (int x = 0; x <bredde; x ++) {grid [x] [y] = ny JButton ("("+x+","+y+") "); frame.add (rutenett [x] [y]); }}…

      Lage en knappgitterforekomst:

      public static void main (String args) {new ButtonGrid (3, 3); // lager nytt ButtonGrid med 2 parametere} …

      Endelig kode:

      importer javax.swing. JFrame; // importerer JFrame bibliotek import javax.swing. JButton; // importerer JButton bibliotek import java.awt. GridLayout; // importerer GridLayout bibliotek offentlig klasse ButtonGrid {JFrame frame = new JFrame (); // lager rammen JButton rutenett; // navngir rutenettet for knapper offentlig ButtonGrid (int bredde, int lengde) {// constructor frame.setLayout (nytt GridLayout (bredde, lengde)); // set layout grid = new JButton [width] [length]; // tildel størrelsen på rutenettet for (int y = 0; y <length; y ++) {for (int x = 0; x <width; x ++) {grid [x] [y] = new JButton ("("+ x+","+y+")"); // lager ny knappramme.add (rutenett [x] [y]); // legger til knapp i rutenettet}} frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE); ramme. pakke (); // angir passende størrelse for frame frame.setVisible (true); // gjør rammen synlig} offentlig statisk tomrom main (String args) {new ButtonGrid (3, 3); // gjør ny ButtonGrid med 2 parametere}}

      importer javax.swing. JFrame; // importerer JFrame bibliotek import javax.swing. JButton; // importerer JButton bibliotek import java.awt. GridLayout; // importerer GridLayout -biblioteket

      offentlig klasse ButtonGrid {

      JFrame -ramme = ny JFrame (); // lager rammen JButton rutenett; // navngir rutenettet med knapper

      public ButtonGrid (int width, int length) {// constructor frame.setLayout (new GridLayout (bredde, lengde)); // set layout grid = new JButton [width] [length]; // tildel størrelsen på rutenettet for (int y = 0; y <length; y ++) {for (int x = 0; x <width; x ++) {grid [x] [y] = new JButton ("("+ x+","+y+")"); // lager ny knappramme.add (rutenett [x] [y]); // legger til knapp i rutenettet}} frame.setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE); ramme. pakke (); // angir passende størrelse for frame frame.setVisible (true); // gjør rammen synlig} offentlig statisk tomrom main (String args) {new ButtonGrid (3, 3); // gjør ny ButtonGrid med 2 parametere}

Anbefalt: