Як створити сітку в графічному інтерфейсі Java

На даному етапі сітка не буде робити нічого особливого, але якщо ви захочете трохи поекспериментувати, ви можете додати слухачів ActionListener і трохи логіки, щоб зробити просту 2D-гру, таку як хрестики-нулики або більш складну, таку як Морський бій.


Зверніть увагу: У цій статті для всіх прикладів використовується Eclipse тому можливі деякі відмінності в залежності від використовуваної вами IDE (інтегрованого середовища розробки). Все описане цілком підійде у випадку використання JCreator, але майже марно для таких графічних IDE як NetBeans в основному через використання цієї середовищем методу drag-and-drop (перетягування об`єктів).

Кроки

  1. Як створити сітку в графічному інтерфейсі Java

    1

    Створіть проект на Java. Це досить просто. Запустіть ваше середовище розробки і створіть новий проект. Назвіть його, як забажаєте. У нашому прикладі це буде buttongrid.
    • Найменування не має значення, так як це просто ім`я файлу.

  2. Як створити сітку в графічному інтерфейсі Java

    2

    Створіть клас Java з методом main. Створіть новий клас і назвіть його, як забажаєте. У нашому прикладі це буде buttongrid. Користувачам Eclipse досить клацнути на полі з написом "public static void main (string [] args)", тобто вам не потрібно буде самим це набирати.
    • Це ім`я більш важливо. ніж попереднє, так як воно повинно складатися з одного слова, інакше його не можна буде використовувати.

  3. Як створити сітку в графічному інтерфейсі Java

    3

    Імпортуйте бібліотеки. Таким чином вам буде доступна вся інформація, необхідна для написання вашого коду. Вам потрібно імпортувати javax.swing.JFrame, javax.swing.JButton і java.awt.Gridlayout. Їх потрібно додати до оголошення вашого класу в рядках 1-3, порядок не має значення.

  4. Як створити сітку в графічному інтерфейсі Java

    4

    Створіть конструктор. Конструктор створює екземпляр класу buttongrid, щоб кілька екземплярів класу buttongrid могли містити різну інформацію. Всі конструктори повинні мати таке ж ім`я, як найменування класу. Перед конструктором не потрібно нічого вказувати, але зазвичай додають `public`, щоб на нього простіше було посилатися. Конструктор зазвичай оголошують першим з методом класу, тобто він йде відразу після імені класу, але він повинен бути оголошений всередині самого класу. Конструктору buttongrid потрібні параметри, які необхідно помістити в дужки після імені конструктора. У нашому прикладі це цілі числа `x` і `y`.

  5. Як створити сітку в графічному інтерфейсі Java

    5

    Створіть головне вікно (фрейм):



    1. Фрейм повинен мати ім`я. Щоб на нього можна було посилатися поза конструктора ButtonGrid, його потрібно помістити поза цього методу, але всередині класу. Більшість змінних оголошують на самому початку класу відразу після конструктора. Щоб створити фрейм, вам потрібно написати: JFrame frame = new JFrame () -

    2. Усередині конструктора нам потрібно переконатися, що всі кнопки поміщені на сітку. Щоб це зробити, нам потрібно встановити розміщення у фреймі, набравши наступне: frame.setLayout (new GridLayout (x, y)) -

    3. Не зовсім обов`язково, але щоб головне вікно закривалося при натисканні на кнопку `x` в його правому верхньому куті, нам потрібно додати рядок: frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE) -

    4. Щоб встановити для фрейма правильний розмір, і щоб він вмістив усе необхідне, нам потрібно виконати команду упаковки: frame.pack () -

    5. Останнє, що потрібно зробити з фреймом - це зробити його видимим: frame.setVisible (true) -

  6. Як створити сітку в графічному інтерфейсі Java

    6

    Створіть сітку з кнопками:
    1. Потрібно створити кнопки, з якими взаємодіє користувач, але так як ми не знаємо, скільки кнопок нам потрібно, їх спочатку потрібно просто оголосити. Тому відразу після рядка створення фрейма оголосіть кнопки: JButton [] [] grid- Дві пари квадратних дужок означають, що екземпляри JButton на сітці будуть міститися в двовимірному форматі. Якби була одна пара дужок, то це означало б просту лінію з кнопок JButton, що теж підійде. Але значно простіше посилатися на створювану кнопку або взаємодіяти з кнопкою, якщо вони оголошені в якості двовимірного масиву.

    2. Кнопки JButton ми оголосили, але не вказали, скільки їх. У конструкторі потрібно додати рядок коду, яка встановлює це кількість: grid = new JButton [width] [length] -



    3. Тепер визначено, що буде певна кількість кнопок, і кожну з них потрібно створити. Найпростіший спосіб це зробити - використовувати подвійний цикл, один по осі x, а інший по осі y. Усередині цього подвійного циклу ми створюємо нову кнопку, і для спрощення подальшої посилання в нашому прикладі ми будемо всередині кожної кнопки розміщувати текст, щоб знати, де знаходиться кожна з кнопок двовимірного масиву. Для створення кнопки всередині циклу нам потрібно написати grid [x] [y] = new JButton ("(" + x + "," + y + ")") -

  7. Як створити сітку в графічному інтерфейсі Java

    7

    Додайте кнопки на фрейм. Всередині циклу нам потрібно помістити кнопки на головний фрейм за допомогою простої команди: frame.add (grid [x] [y]) -

  8. Як створити сітку в графічному інтерфейсі Java

    8

    Створіть екземпляр ButtonGrid. У головному класі напишіть: new ButtonGrid (3,3) - Ці дві трійки створять сітку розміром 3 на 3, замість них можна вказати будь-які позитивні числа.

  9. Як створити сітку в графічному інтерфейсі Java

    9

    Запустіть програму. В Eclipse для цього можна натиснути Ctrl + F11

  10. 10

    Ви можете дізнатися докладніше про java тут: https://java.sun.com/j2se/1.4.2/docs/api/index-files/index-1.html

    1. Що стосується кнопок: Щоб кнопки щось робили, використовуйте слухач ActionListener ()

Вихідний код

  • Основний клас:

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

  • Секція імпорту:

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

  • Код конструктора:

public class ButtonGrid {public ButtonGrid(int width, int length){}}...

  • Код для головного вікна (фрейму):

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);frame.pack();frame.setVisible(true);}}...

  • Код сітки з кнопками:

|JFrame frame=new JFrame(); // Створює фреймJButton[][] grid; // Оголошує кнопкиpublic ButtonGrid(int width, int length){ // Конструктор з 2-ма параметрамиframe.setLayout(new GridLayout(width, length)); // Встановлює розміщенняgrid=new JButton[width][length]; // Виділяє місце відповідно до розміру сіткиfor(int y=0; y<</span>length; y++){for(int x=0; x<</span>width; x++){grid[x][y]=new JButton("("+x+","+y+")");frame.add(grid[x][y]); // Додає кнопки на сітку}}frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.pack();frame.setVisible(true);}...

  • Додавання кнопок на фрейм:

for(int y=0; y<</span>length; y++){for(int x=0; x<</span>width; x++){grid[x][y]=new JButton("("+x+","+y+")");frame.add(grid[x][y]);}}...

  • Створення примірника сітки з кнопками:

public static void main(String[] args) {new ButtonGrid(3,3);// Створює екземпляр ButtonGrid по 2 параметрам}...

  • Остаточний код:

import javax.swing.JFrame; // Імпортує бібліотеку JFrameimport javax.swing.JButton; // Імпортує бібліотеку JButtonimport java.awt.GridLayout; // Імпортує бібліотеку GridLayoutpublic class ButtonGrid {JFrame frame=new JFrame(); // Створює фреймJButton[][] grid; // Оголошує кнопкиpublic ButtonGrid(int width, int length){ // Конструкторframe.setLayout(new GridLayout(width, length)); // Встановлює розміщенняgrid=new JButton[width][length]; // Виділяє місце відповідно до розміру сіткиfor(int y=0; y<</span>length; y++){for(int x=0; x<</span>width; x++){grid[x][y]=new JButton("("+x+","+y+")"); // Створює нову кнопку frame.add(grid[x][y]); // Додає кнопки на сітку}}frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.pack(); // Встановлює відповідний розмір фреймаframe.setVisible(true); // Робить фрейм видимим}public static void main(String[] args) {new ButtonGrid(3,3);// Створює новий екземпляр ButtonGrid по 2 параметрам}}