Для начала вот некоторые предварительные условия:
-У вас должно быть честное представление о синтаксисе Java, потому что я не собираюсь этому учить.
-Вы должны загрузить Eclipse (любой будет делать, например, Индиго, Галилео, Ганимед и т. Д.)
— Вы должны скачать файл acm.jar и включить его в свой проект в качестве внешнего файла JAR .
ПРИМЕЧАНИЕ . Если вы можете либо загрузить Eclipse, либо выполнить из командной строки . Если вы выполняете из командной строки , не забудьте ввести путь acm.jar к переменной среды -> CLASSPATH , иначе он выдаст ошибку.
AWT (Abstract Window Toolkit) предоставляет компоненты GUI, которые можно использовать в Java-апплетах, но здесь мы также будем использовать библиотеку acm.jar .
Пакет java.awt и acm. * / Acm.program. * пакет содержит компоненты GUI.
Теперь мы должны описать компоненты, которые вы будете использовать для создания графического интерфейса.
Холст:
Canvas (в java.awt) / GCanvas (acm. *) — это класс, который предоставляет холст на фоне для добавления объекта поверх него. Это создается автоматически программой Graphics.
Некоторые из методов GCanvas:
add (object): добавляет объект на холст.
add (object, x, y) : добавляет объект в указанной позиции (x, y).
add (object, position) : добавляет объект в указанной позиции (SOUTH, NORTH, EAST, WEST).
удалить (объект) : удаляет этот конкретный объект
removeAll () : удаляет все объекты с холста.
setBackground (color) : устанавливает фон холста.
Чтобы узнать больше о методах GCanvas, нажмите здесь .
Чтобы узнать о методах Canvas, нажмите здесь .
Контейнеры:
Вы добавляете компоненты GUI в контейнер, используя метод add.
Существует два типа контейнеров Window и Panel .
Окно :
Окно — это контейнер, который не зависит от других контейнеров. Есть два типа окон: Рамка и Диалог . Фрейм — это окно с заголовком и углами, размер которых можно изменить, тогда как диалог — это простое окно. Мы можем переместить диалог, но не можем изменить его размер.
Панель :
Панель должна находиться внутри другого контейнера или окна веб-браузера. Вы должны поместить панель в окно для отображения.
Компоненты позиционирования и размеров :
Положение и размер компонента в контейнере определяется с помощью менеджера макета. Контейнер имеет экземпляр менеджера макета. Всякий раз, когда контейнеру необходимо изменить размер или переместить компонент внутри него, он вызывает диспетчер компоновки и делает все необходимое.
В классе Layout Manager определены разные методы для изменения местоположения и изменения размера.
Рамки:
Фрейм является подклассом Window . Frame наследует свои свойства от класса Container, поэтому вы можете добавлять компоненты в Frame с помощью метода add .
Макет по умолчанию для Frame — BorderLayout , хотя это можно изменить с помощью метода setLayout .
Конструктор Frame (String) создает новый невидимый объект Frame с заголовком, указанным в String.
Пример :
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
|
//Program using the acm library import javax.swing.*; import java.awt.*; import acm.program.*; public class FrameExample extends GraphicsProgram{ private JFrame f; public FrameExample(){ f = new JFrame( "Code 2 Learn" ); } public void launchMyFrame(){ f.setSize( 300 , 300 ); f.setBackground(Color.blue); f.setVisible( true ); } public void init(){ FrameExample fe= new FrameExample(); fe.launchMyFrame(); } } |
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
|
//Program using the w/o acm library import java.awt.*; public class FrameExample{ private Frame f; public FrameExample(){ f = new Frame( "Code 2 Learn" ); } public void launchMyFrame(){ f.setSize( 300 , 300 ); f.setBackground(Color.blue); f.setVisible( true ); } public static void main(String args[]){ FrameExample fe= new FrameExample(); fe.launchMyFrame(); } } |
Панели:
Панель , как и Frame , предоставляет пространство для подключения компонента GUI. Каждая панель может иметь свой собственный менеджер раскладки.
После создания панели мы должны добавить ее в окно или рамку . Это может быть достигнуто с помощью метода add () .
Пример :
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
//Program using the acm library import javax.swing.*; import java.awt.Color; import acm.program.*; public class FrameExample extends GraphicsProgram{ private JFrame f; private JPanel p; public FrameExample(){ f = new JFrame( "Code 2 Learn" ); p= new JPanel(); } public void launchMyFrame(){ f.setSize( 300 , 300 ); f.setLayout( null ); //Override the default layout manager p.setSize( 300 , 50 ); p.setBackground(Color.BLACK); f.add(p); f.setVisible( true ); } public static void main(String args[]){ FrameExample fe= new FrameExample(); fe.launchMyFrame(); } } |
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
/Program using the w/o acm library import javax.swing.*; import java.awt.*; public class FrameNPanel{ private Frame f; private Panel p; public FrameNPanel(){ f = new Frame( "Code 2 Learn" ); p= new Panel(); } public void launchMyFrame(){ f.setSize( 300 , 300 ); f.setLayout( null ); //Override the default layout manager p.setSize( 300 , 50 ); p.setBackground(Color.BLACK); f.add(p); f.setVisible( true ); } public static void main(String args[]){ FrameNPanel fe= new FrameNPanel(); fe.launchMyFrame(); } } |
Я объяснил о панелях, рамах и окнах, в которые мы можем поместить наши предметы. Но мы не установили макет окна, панели или фрейма в нашем последнем уроке, мы использовали макет по умолчанию.
Теперь мы будем разбираться в различных типах макетов, доступных для использования и управления нашим графическим интерфейсом.
Макет контейнера:
Компоновка каждого компонента в контейнере регулируется менеджером макетов. С каждым контейнером (таким как Panel или Frames ) связан менеджер макета по умолчанию, который мы можем изменить.
Менеджер по раскладке:
Следующие менеджеры макета включены с языком программирования Java:
- FlowLayout — FlowLayout является менеджером по умолчанию для Panel и Апплета . Компоненты, помещенные в контейнер с менеджером макета как FlowLayout, будут размещены рядом друг с другом, создавая поток (например, студенты по прямой линии)
- BorderLayout — BorderLayout является менеджером по умолчанию для Window, Dialog и Frame. BorderLayout при применении заставит компоненты появляться на границах, т.е. ЗАПАД, ЮГ, СЕВЕР, ЦЕНТР ИЛИ ВОСТОК, в зависимости от того, какой выбор дан.
- GridLayout — этот менеджер компоновки обеспечивает гибкость размещения компонентов в контейнере.
- CardLayout — это то, что использует два или более компонентов, которые имеют один и тот же дисплей (как вы можете видеть ниже).
- GridBagLayout — GridBagLayout — самый гибкий и самый сложный менеджер компоновки в среде Java. Он размещает компоненты, строки и столбцы и, таким образом, позволяет нам выполнять диапазон строк или столбцов для размещения поверх компонентов.
НОТА :
По умолчанию все классы Window используют менеджер BorderLayout, а классы Panel — диспетчер FlowLayout. Функция setLayout () используется для изменения макета контейнера (как показано ниже в примере).
Простой пример FlowLayout :
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import java.awt.*; public class GUI2 { private Frame f; private Button but1; private Button but2; public GUI2(){ f = new Frame( "CODE 2 LEARN" ); but1 = new Button( "Like Code 2 Learn" ); but2 = new Button( "Don't Like Code 2 Learn" ); } public void generateGUI(){ f.setLayout( new FlowLayout()); f.add(but1); f.add(but2); f.pack(); f.setVisible( true ); } public static void main(String[] args) { GUI2 launchgui= new GUI2(); launchgui.generateGUI(); } } |
Ссылка: Учебное пособие по Java-графике — 1 и Учебное пособие по Java-II от нашего партнера по JCG Фархана Хваджа в блоге Code 2 Learn .