Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ AWT Π² Java?

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² AWT Π½Π° Java

Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ AWT

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² AWT, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠΈ, тСкстовыС поля, ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ Ρ‚. Π”. ΠšΠ»Π°ΡΡΡ‹, Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰ΠΈΠ΅ класс Container, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Frame, Dialog ΠΈ Panel, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ.

Π’ΠΈΠΏΡ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²:

Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅, ΠΏΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ понимаСтся мСсто, Π³Π΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ тСкстовоС ΠΏΠΎΠ»Π΅, ΠΊΠ½ΠΎΠΏΠΊΠ°, Ρ„Π»Π°ΠΆΠΎΠΊ ΠΈ Ρ‚. Π”. ВсСго Π² AW доступно Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²: ΠΎΠΊΠ½ΠΎ, Ρ„Ρ€Π΅ΠΉΠΌ, Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈ панСль. Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ Π²Ρ‹ΡˆΠ΅, Frame ΠΈ Dialog ΡΠ²Π»ΡΡŽΡ‚ΡΡ подклассами класса Window.

панСль

Π΄ΠΈΠ°Π»ΠΎΠ³

ΠžΡ‚Π΄Π΅Π»ΠΊΠ°

ΠŸΠΎΡ‡Π΅ΠΌΡƒ AWT зависит ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹?

Java Abstract Window Toolkit Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Ie, ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы для создания Ρ‚Π°ΠΊΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΊΠ°ΠΊ тСкстовоС ΠΏΠΎΠ»Π΅, Ρ„Π»Π°ΠΆΠΎΠΊ, ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΈ Ρ‚. Π”. НапримСр, графичСский интСрфСйс AWT, содСрТащий ΠΊΠ½ΠΎΠΏΠΊΡƒ, Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΉ внСшний Π²ΠΈΠ΄ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Windows. Mac OS, Unix ΠΈ Ρ‚. Π”., ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ эти ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ выглядят ΠΈ Ρ‡ΡƒΠ²ΡΡ‚Π²ΡƒΡŽΡ‚ свои ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ собствСнныС ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ AWT Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ. ΠŸΡ€ΠΎΡ‰Π΅ говоря, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, построСнноС Π½Π° AWT, Π±ΡƒΠ΄Π΅Ρ‚ большС ΠΏΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Windows ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² Windows, ΠΎΠ΄Π½Π°ΠΊΠΎ, Ρ‚ΠΎ ΠΆΠ΅ самоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Mac ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС Mac.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Java AWT

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ графичСский интСрфСйс с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Frame двумя способами:
Π›ΠΈΠ±ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ класс Frame, Π»ΠΈΠ±ΠΎ создавая экзСмпляр класса Frame
ПокаТСм это Π½Π° ΠΎΠ±ΠΎΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, сначала Ρ€Π°ΡΡˆΠΈΡ€ΠΈΠ² класс Frame:

import java.awt.*;/* Extend the Frame class here,
*thus our class «Example» would behave
*like a Frame
*/public class Example extends Frame
(Example()
(Button b=new Button(«Button!!»);
//setting button position on screen
b.setBounds(50, 50, 50, 50);
//adding button into frame
add(b);
//Setting width and height
setSize(500, 300);
//Setting title of Frame
setTitle(«This is First AWT example»);
//Setting the layout for the Frame
setLayout(new FlowLayout());
/*By default frame is not visible so
*we are setting the visibility to true
*to make it visible.
*/
setVisible(true);
)
public static void main(String args())(
//Creating the instance of Frame
Example fr=new Example();
)
)

ПокаТСм это Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, создав экзСмпляр класса Frame

import java.awt.*;
public class Example (
Example()
(
//Creating Frame
Frame f=new Frame();
//Creating a label
Label l = new Label(«User: «);
//adding label to the frame
f.add(l);
//Creating Text Field
TextField t = new TextField();
//adding text field to the frame
f.add(t);
//setting frame size
f.setSize(500, 300);
//Setting the layout for the Frame
f.setLayout(new FlowLayout());
f.setVisible(true);
)
public static void main(String args())
(Example ex = new Example();
)
)

ΠœΠ°ΠΊΠ΅Ρ‚Ρ‹ Π² AWT

Π’ AWT Π΅ΡΡ‚ΡŒ 2 ΠΌΠ°ΠΊΠ΅Ρ‚Π°:

ΠœΠ΅Ρ‚ΠΎΠ΄ для ΠΌΠ°ΠΊΠ΅Ρ‚Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹:

public BorderLayout (int hgap, int vgap)

Π’Ρ‹Π²ΠΎΠ΄: Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ AWT Π² Java?

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ AWT Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΉ Π½Π°Π±ΠΎΡ€ инструмСнтов для проСктирования GUI, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠ³ Π±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…. Π­Ρ‚ΠΈ инструмСнты сохранили внСшний Π²ΠΈΠ΄ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

AWT ΠΏΡ€ΠΎΡ‚ΠΈΠ² Swing

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ AWT ΠΈ Swing

ΠžΠ±Π·ΠΎΡ€ AWT : AWT ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Java. Он обСспСчиваСт Π²Ρ‹ΡΠΎΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΡƒΡŽ Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ для Java-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ скрываСт основныС Π΄Π΅Ρ‚Π°Π»ΠΈ GUI. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ AWT прСдставляСт собой API-интСрфСйс, основанный Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт графичСский интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ для Java. Π•Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ зависит ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΎΠ³Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, внСшний Π²ΠΈΠ΄ этой ОБ) для управлСния ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, эти ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ «тяТСлыми» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ.

AWT ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя:

ΠžΠ±Π·ΠΎΡ€ Swing : Swing построСн Π½Π° AWT, ΠΎΠ½ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ Java Foundation Classes. Swing ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ основан Π½Π° Java, поэтому Π΅Π³ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° нСзависима. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания Π±ΠΎΠ»Π΅Π΅ эффСктивного графичСского интСрфСйса, Ρ‡Π΅ΠΌ AWT.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Π»ΠΈΡ†ΠΎΠΌ ΠΊ Π»ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ AWT ΠΈ Swing (ΠΈΠ½Ρ„ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΊΠ°)

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ 11 Π»ΡƒΡ‡ΡˆΠΈΡ… сравнСний ΠΌΠ΅ΠΆΠ΄Ρƒ AWT ΠΈ Swing: Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ отличия AWT ΠΎΡ‚ Swing:

ИспользованиС собствСнных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π΄Π΅Π»Π°Π΅Ρ‚ AWT быстрым. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ΡΡ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ AWT, для Π°ΠΏΠΏΠ»Π΅Ρ‚ΠΎΠ² AWT Π½Π΅ трСбуСтся ΠΏΠ»Π°Π³ΠΈΠ½ Java. Но AWT ΠΈΠΌΠ΅Π΅Ρ‚ мСньший Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², поэтому ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ приходится ΠΏΠΈΡΠ°Ρ‚ΡŒ собствСнный ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ свои собствСнныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π° основС AWT. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ AWT Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ строка Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΈ строки мСню.

Π‘Π²ΠΈΠ½Π³ являСтся ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ΠΌ AWT. Π­Ρ‚ΠΎ Π½Π΅ точная Π·Π°ΠΌΠ΅Π½Π° AWT. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ AWT с Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒΡŽ JAVA. Π˜Ρ‚Π°ΠΊ, всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² AWT, Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π² Swing. Но Swing Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΡ€Π°Π½Π³ΠΎΠ²ΠΎΠ³ΠΎ программирования, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ нСзависимым ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Π»Π΅Π³ΠΊΠΈΠΌ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Swing позволяСт Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ спСктр ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ свинг. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, для свинга Π½ΡƒΠΆΠ΅Π½ Java-ΠΏΠ»Π°Π³ΠΈΠ½. Π‘Π²ΠΈΠ½Π³ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с AWT. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Swing ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ свои собствСнныС рисунки (Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ API, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ DirectX Π² Windows), это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ графичСским сбоям.

Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ AWT ΠΈ Swing:

AWTSWING
AWT Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Abstract Window Toolkit.Swing являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ Java Foundation Classes (JFC).
AWT зависит ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π•Π³ΠΎ ΠΊΠΎΠ΄ находится Π² ОБ систСмы, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΊΠ°Ρ‡Π΅Π»Π΅ΠΉ сдСланы Π² JAVA. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, дСлая Π΅Π³ΠΎ нСзависимым ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.
ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ AWT ΠΈΠΌΠ΅ΡŽΡ‚ большой вСс.ΠšΠ°Ρ‡Π΅Π»ΠΈ Π»Π΅Π³ΠΊΠΈΠ΅.
AWT Π½Π΅ слСдуСт MVC (Model View Controller).Swing основан Π½Π° MVC.
Для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² AWT трСбуСтся java.awt.packageДля ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Swing трСбуСтся javax.swing.package.
AWT Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Jtable ΠΈ Jtabbed ΠΏΠ°Π½Π΅Π»ΠΈ.Π£ Swing Π΅ΡΡ‚ΡŒ Jtable ΠΈ Jtabbed.
AWT зависит ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, поэтому поддСрТиваСтся Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ внСшний Π²ΠΈΠ΄.ΠšΠ°Ρ‡Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ.
AWT Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ большС мСста Π² памяти.ΠšΠ°Ρ‡Π΅Π»ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ мСньшС мСста Π² памяти.
AWT ΠΌΠ΅Π½Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ, Ρ‡Π΅ΠΌ Swing.Π‘Π²ΠΈΠ½Π³ являСтся ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ΠΌ AWT, поэтому ΠΌΠ½ΠΎΠ³ΠΈΠ΅ нСдостатки устранСны.
Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ AWT зависит ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ Swing Π½Π΅ зависит ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы.
ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ AWT зависят ΠΎΡ‚ собствСнного ΠΊΠΎΠ΄Π° (ΠΏΠΈΡ€ΠΎΠ²) для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ эти ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ «тяТСлыми ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈΒ».Π£ свинга Ρ‚Π°ΠΊΠΎΠΉ зависимости Π½Π΅Ρ‚. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, эти ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Β«Π»Π΅Π³ΠΊΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈΒ».

Π’Ρ‹Π²ΠΎΠ΄:

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΠ°ΠΊΠ΅Ρ‚ java.awt

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π”Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

Component

Абстрактный класс Component являСтся Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ для всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² AWT ΠΈ описываСт ΠΈΡ… основныС свойства. Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² AWT ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ Π½Π° экранС ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

Рассмотрим основныС свойства этого класса.

ПолоТСниС

Для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° эта Ρ‚ΠΎΡ‡ΠΊΠ° Π·Π°Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΡƒΠ³Π»Π°.

Π Π°Π·ΠΌΠ΅Ρ€
Π’ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ

РазумССтся, Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

Π”ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ
Π¦Π²Π΅Ρ‚Π°

РазумССтся, для построСния соврСмСнного графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π° с Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ двумя свойствами, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ Ρ†Π²Π΅Ρ‚Π°, – foreground ΠΈ background Ρ†Π²Π΅Ρ‚Π°. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ свойство Π·Π°Π΄Π°Π΅Ρ‚, ΠΊΠ°ΠΊΠΈΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ надписи, Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ ΠΈ Ρ‚.Π΄. Π’Ρ‚ΠΎΡ€ΠΎΠ΅ – Π·Π°Π΄Π°Π΅Ρ‚ Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π·Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ вся ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, занимаСмая ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ, ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ прорисовываСтся внСшний Π²ΠΈΠ΄.

Π¦Π²Π΅Ρ‚ задаСтся 3 цСлочислСнными характСристиками, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ RGB, – красный, Π·Π΅Π»Π΅Π½Ρ‹ΠΉ, синий. КаТдая ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ 0 Π΄ΠΎ 255 (Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΈΡ… Ρ‚ΠΈΠΏ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΊΠ°ΠΊ int ). Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ (0, 0, 0) соотвСтствуСт Ρ‡Π΅Ρ€Π½ΠΎΠΌΡƒ, Π° (255, 255, 255) – Π±Π΅Π»ΠΎΠΌΡƒ.

Π¨Ρ€ΠΈΡ„Ρ‚

Π Π°Π· ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя надписи, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ свойство, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΡˆΡ€ΠΈΡ„Ρ‚ для ΠΈΡ… прорисовки.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ массив строк-ΠΈΠΌΠ΅Π½ сСмСйств ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ².

Π’ Java 2 Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° AWT Π±Ρ‹Π»Π° сущСствСнно пСрСсмотрСна ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π°. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ нСоднозначности с Ρ€Π°Π·Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° логичСскиС ΠΈ физичСскиС ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹. Вторая Π³Ρ€ΡƒΠΏΠΏΠ° опрСдСляСтся возмоТностями ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, это Ρ‚Π΅ ΠΆΠ΅ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ Π½Π° этой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅.

ΠŸΠ΅Ρ€Π²Π°Ρ Π³Ρ€ΡƒΠΏΠΏΠ° состоит ΠΈΠ· 5 ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… сСмСйств (добавились Dialog ΠΈ DialogInput ). JVM устанавливаСт соотвСтствиС ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящими ΠΈΠ· доступных физичСских ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ².

Класс Font являСтся нСизмСняСмым. ПослС создания ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ логичСскоС имя (ΠΌΠ΅Ρ‚ΠΎΠ΄ getName ) ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π΅ΠΌΡƒ физичСскоС имя сСмСйства (ΠΌΠ΅Ρ‚ΠΎΠ΄ getFamily ).

Как ΠΈ Π² случаС ΠΈΠΌΠ΅Π½ΠΈ ΡˆΡ€ΠΈΡ„Ρ‚Π°, программист ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ любоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Π° JVM поставит Π΅ΠΌΡƒ Π² соотвСтствиС максимально Π±Π»ΠΈΠ·ΠΊΠΈΠΉ ΠΈΠ· доступных.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

11. ЛСкция: ΠŸΠ°ΠΊΠ΅Ρ‚ java.awt

11. ЛСкция: ΠŸΠ°ΠΊΠ΅Ρ‚ java.awt

Π­Ρ‚Π° лСкция Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ рассмотрСниС Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Java, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ языка ΠΈ входят Π² Π΅Π³ΠΎ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ описываСтся ΠΏΠ°ΠΊΠ΅Ρ‚ java.awt, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ AWT для создания графичСского (ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ) интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ – GUI. Ни ΠΎΠ΄Π½Π° соврСмСнная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, прСдназначСнная для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½Π΅ обходится Π±Π΅Π· ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ, понятного, Π² ΠΈΠ΄Π΅Π°Π»Π΅ – красивого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. Π‘ самой ΠΏΠ΅Ρ€Π²ΠΎΠΉ вСрсии Π² Java сущСствуСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ тСхнология для создания GUI. Она называСтся AWT, Abstract Window Toolkit. ИмСнно ΠΎ Π½Π΅ΠΉ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ Π² этой Π»Π΅ΠΊΡ†ΠΈΠΈ. ΠŸΠ°ΠΊΠ΅Ρ‚ java.awt ΠΏΡ€Π΅Ρ‚Π΅Ρ€ΠΏΠ΅Π», ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, большС всСго ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ с Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ вСрсий Java. ΠœΡ‹ рассмотрим Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², доступных программисту, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ модСль сообщСний, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ дСйствия, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ особСнности AWT – Ρ€Π°Π±ΠΎΡ‚Π° с Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ, ΡˆΡ€ΠΈΡ„Ρ‚Π°ΠΌΠΈ, отрисовка графичСских ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ², ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΠΈ Ρ‚.Π΄. Π₯отя тСхнология AWT Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС, Ρ‡Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π»ΠΎΠΆΠΈΡ‚ΡŒ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠΉ Π»Π΅ΠΊΡ†ΠΈΠΈ

, здСсь собраны всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ свСдСния для создания ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ интСрфСйса.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Java-прилоТСния ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, рСализация графичСского ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса (GUI) Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ для любой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π»ΠΈΠ±ΠΎ, Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄, Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ для Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Π’ силу ряда ΠΏΡ€ΠΈΡ‡ΠΈΠ½, для основной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎ созданию GUI Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, это лишний Ρ€Π°Π· ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΎ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Java – Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΌΠΎΠ³Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π½Π΅ мСняя своих ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π΅ΠΊ. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, такая рСализация обСспСчивала Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±Ρ‹Π»Π° основана Π½Π° возмоТностях ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Π’ частности, это ΠΎΠ·Π½Π°Ρ‡Π°Π»ΠΎ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ, простой, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π½Π°Π·Π²Π°Π»ΠΈ AWT – Abstract Window Toolkit. Π‘Π»ΠΎΠ²ΠΎ abstract Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ всС стандартныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Π° Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² связкС с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ элСмСнтами ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы.

Π”Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

Component

Абстрактный класс Component являСтся Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ для всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² AWT ΠΈ описываСт ΠΈΡ… основныС свойства. Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² AWT ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ Π½Π° экранС ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

Рассмотрим основныС свойства этого класса.

ПолоТСниС

ПолоТСниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° описываСтся двумя Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами (Ρ‚ΠΈΠΏ int ) x ΠΈ y. Π’ Java (ΠΊΠ°ΠΊ ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… языках программирования) ось x ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ – Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎ, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π° Π²ΠΏΡ€Π°Π²ΠΎ, Π° ось Ρƒ – Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ, Π½ΠΎ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π° Π²Π½ΠΈΠ·, Π° Π½Π΅ Π²Π²Π΅Ρ€Ρ…, ΠΊΠ°ΠΊ принято Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅.

Для описания полоТСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ класс – Point (Ρ‚ΠΎΡ‡ΠΊΠ°). Π’ этом классС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π΄Π²Π° public int поля x ΠΈ y, Π° Ρ‚Π°ΠΊΠΆΠ΅ мноТСство конструкторов ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ. Класс Point примСняСтся Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠ°Ρ… AWT, Π³Π΄Π΅ Π½Π°Π΄ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ Π½Π° плоскости.

Для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° эта Ρ‚ΠΎΡ‡ΠΊΠ° Π·Π°Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΡƒΠ³Π»Π°.

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° setLocation(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠ°Ρ€Ρƒ Ρ†Π΅Π»Ρ‹Ρ… чисСл, Π»ΠΈΠ±ΠΎ Point. Π£Π·Π½Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° getLocation(), Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π³ΠΎ Point, Π»ΠΈΠ±ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² getX() ΠΈ getY(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ появились с вСрсии Java 1.2.

Π Π°Π·ΠΌΠ΅Ρ€

Как Π±Ρ‹Π»ΠΎ сказано, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ AWT ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ, Π° ΠΏΠΎΡ‚ΠΎΠΌΡƒ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ описываСтся Ρ‚Π°ΠΊΠΆΠ΅ двумя цСлочислСнными ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ – width (ΡˆΠΈΡ€ΠΈΠ½Π°) ΠΈ height (высота). Для описания Ρ€Π°Π·ΠΌΠ΅Ρ€Π° сущСствуСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ класс Dimension (Ρ€Π°Π·ΠΌΠ΅Ρ€), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π΄Π²Π° public int поля width ΠΈ height, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° setSize, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠ°Ρ€Ρƒ Ρ†Π΅Π»Ρ‹Ρ… чисСл, Π»ΠΈΠ±ΠΎ Dimension. Π£Π·Π½Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° getSize(), Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π³ΠΎ Dimension, Π»ΠΈΠ±ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² getWidth() ΠΈ getHeight(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ появились с вСрсии Java 1.2.

БовмСстно ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π·Π°Π΄Π°ΡŽΡ‚ Π΅Π³ΠΎ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹. ΠžΠ±Π»Π°ΡΡ‚ΡŒ, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡƒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ числами ( x, y, width, height ), Π»ΠΈΠ±ΠΎ экзСмплярами классов Point ΠΈ Dimension, Π»ΠΈΠ±ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ классом Rectangle (ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ). Как Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, Π² этом классС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ public int поля, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°Ρ€Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Point ΠΈ Dimension.

Π—Π°Π΄Π°Ρ‚ΡŒ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° setBounds, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ числа, Π»ΠΈΠ±ΠΎ Rectangle. Π£Π·Π½Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° getBounds(), Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π³ΠΎ Rectangle.

Π’ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ Π²ΠΈΠ΄Π΅Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, Ρ‚Π°ΠΊ ΠΈ Π±Ρ‹Ρ‚ΡŒ скрытым. Π­Ρ‚ΠΎ свойство описываСтся булСвским ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ visible. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ для управлСния – setVisible, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ булСвский ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΈ isVisible, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

РазумССтся, Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

Π”ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ

Π”Π°ΠΆΠ΅ Ссли ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ отобраТаСтся Π½Π° экранС ΠΈ Π²ΠΈΠ΄Π΅Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π½ΠΈΠΌ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ события ΠΎΡ‚ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, ΠΈΠ»ΠΈ ΠΌΡ‹ΡˆΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒΡΡ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ. Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ называСтся disabled. Если ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π΅Π½, Π΅Π³ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ enabled. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ мСняСт свой внСшний Π²ΠΈΠ΄, ΠΊΠΎΠ³Π΄Π° становится нСдоступным (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, становится сСрым, ΠΌΠ΅Π½Π΅Π΅ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ΠΌ), Π½ΠΎ, Π²ΠΎΠΎΠ±Ρ‰Π΅ говоря, это Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ (хотя ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ).

Для измСнСния этого свойства примСняСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ setEnabled, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ булСвский ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ( true соотвСтствуСт enabled, false – disabled ), Π° для получСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ значСния – isEnabled.

Π¦Π²Π΅Ρ‚Π°

РазумССтся, для построСния соврСмСнного графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π° с Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ двумя свойствами, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ Ρ†Π²Π΅Ρ‚Π°, – foreground ΠΈ background Ρ†Π²Π΅Ρ‚Π°. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ свойство Π·Π°Π΄Π°Π΅Ρ‚, ΠΊΠ°ΠΊΠΈΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ надписи, Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ ΠΈ Ρ‚.Π΄. Π’Ρ‚ΠΎΡ€ΠΎΠ΅ – Π·Π°Π΄Π°Π΅Ρ‚ Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π·Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ вся ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, занимаСмая ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ, ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ прорисовываСтся внСшний Π²ΠΈΠ΄.

Для задания Ρ†Π²Π΅Ρ‚Π° Π² AWT ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ класс Color. Π­Ρ‚ΠΎΡ‚ класс ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ довольно ΠΎΠ±ΡˆΠΈΡ€Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, поэтому рассмотрим основныС характСристики.

Π¦Π²Π΅Ρ‚ задаСтся 3 цСлочислСнными характСристиками, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ RGB, – красный, Π·Π΅Π»Π΅Π½Ρ‹ΠΉ, синий. КаТдая ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ 0 Π΄ΠΎ 255 (Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΈΡ… Ρ‚ΠΈΠΏ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΊΠ°ΠΊ int ). Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ (0, 0, 0) соотвСтствуСт Ρ‡Π΅Ρ€Π½ΠΎΠΌΡƒ, Π° (255, 255, 255) – Π±Π΅Π»ΠΎΠΌΡƒ.

Класс Color являСтся нСизмСняСмым, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, создав экзСмпляр, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ Ρ†Π²Π΅Ρ‚Ρƒ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ RGB ΡƒΠΆΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π­Ρ‚ΠΎ позволяСт ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π² классС Color ряд констант, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ†Π²Π΅Ρ‚Π°: Π±Π΅Π»Ρ‹ΠΉ, Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ, красный, ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. НапримСр, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ синий Ρ†Π²Π΅Ρ‚ числовыми ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ (0, 0, 255), ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ константами Color.blue ΠΈΠ»ΠΈ Color.BLUE (Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ появился Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсиях).

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со свойством ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° foreground ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ setForeground ΠΈ getForeground, Π° для background – setBackground ΠΈ getBackground.

Π¨Ρ€ΠΈΡ„Ρ‚

Π Π°Π· ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя надписи, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ свойство, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΡˆΡ€ΠΈΡ„Ρ‚ для ΠΈΡ… прорисовки.

Для задания ΡˆΡ€ΠΈΡ„Ρ‚Π° Π² AWT сущСствуСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ класс Font, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ‚Ρ€ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° – имя ΡˆΡ€ΠΈΡ„Ρ‚Π°, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ ΡΡ‚ΠΈΠ»ΡŒ.

Имя ΡˆΡ€ΠΈΡ„Ρ‚Π° Π·Π°Π΄Π°Π΅Ρ‚ внСшний ΡΡ‚ΠΈΠ»ΡŒ отобраТСния символов. ИмСна ΠΏΡ€Π΅Ρ‚Π΅Ρ€ΠΏΠ΅Π»ΠΈ ряд ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ с Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ Java. Π’ вСрсии 1.0 Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ JVM ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹: TimesRoman, Helvetica, Courier. ΠœΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ сСмСйства, это зависит ΠΎΡ‚ Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ список Π²ΠΎ врСмя исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π½ΠΎΠ³ΠΎ класса Toolkit. ЭкзСмпляры этого класса нСльзя ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, поэтому ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ‚Π°ΠΊΠΎΠΉ запрос Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ массив строк-ΠΈΠΌΠ΅Π½ сСмСйств ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ².

Π’ Java 1.1 Ρ‚Ρ€ΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ΠΈ Π±Ρ‹Π»ΠΈ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ deprecated. ВмСсто Π½ΠΈΡ… Π±Ρ‹Π» Π²Π²Π΅Π΄Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ список, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТал Π±ΠΎΠ»Π΅Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ названия, Π½Π΅ зависящиС ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы: Serif, SansSerif, Monospaced.

Π’ Java 2 Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° AWT Π±Ρ‹Π»Π° сущСствСнно пСрСсмотрСна ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π°. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ нСоднозначности с Ρ€Π°Π·Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° логичСскиС ΠΈ физичСскиС ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹. Вторая Π³Ρ€ΡƒΠΏΠΏΠ° опрСдСляСтся возмоТностями ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, это Ρ‚Π΅ ΠΆΠ΅ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ Π½Π° этой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅.

ΠŸΠ΅Ρ€Π²Π°Ρ Π³Ρ€ΡƒΠΏΠΏΠ° состоит ΠΈΠ· 5 ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… сСмСйств (добавились Dialog ΠΈ DialogInput ). JVM устанавливаСт соотвСтствиС ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящими ΠΈΠ· доступных физичСских ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ².

ΠœΠ΅Ρ‚ΠΎΠ΄ getFontList класса Toolkit Π±Ρ‹Π» объявлСн deprecated. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список всСх доступных физичСских ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Класс Font являСтся нСизмСняСмым. ПослС создания ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ логичСскоС имя (ΠΌΠ΅Ρ‚ΠΎΠ΄ getName ) ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π΅ΠΌΡƒ физичСскоС имя сСмСйства (ΠΌΠ΅Ρ‚ΠΎΠ΄ getFamily ).

ВСрнСмся ΠΊ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ для создания экзСмпляра Font. Π Π°Π·ΠΌΠ΅Ρ€ ΡˆΡ€ΠΈΡ„Ρ‚Π° опрСдСляСт, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ символов. Однако ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ значСния ΠΈΠ·ΠΌΠ΅Ρ€ΡΡŽΡ‚ΡΡ Π½Π΅ Π² пиксСлах, Π° Π² условных Π΅Π΄ΠΈΠ½ΠΈΡ†Π°Ρ… (ΠΊΠ°ΠΊ ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… тСкстовых Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°Ρ…). Для Ρ€Π°Π·Π½Ρ‹Ρ… сСмСйств ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² символы ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΡƒΡŽ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ высоту, ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½Π½ΡƒΡŽ Π² пиксСлах.

Как ΠΈ Π² случаС ΠΈΠΌΠ΅Π½ΠΈ ΡˆΡ€ΠΈΡ„Ρ‚Π°, программист ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ любоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Π° JVM поставит Π΅ΠΌΡƒ Π² соотвСтствиС максимально Π±Π»ΠΈΠ·ΠΊΠΈΠΉ ΠΈΠ· доступных.

НаконСц, послСдний ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ – ΡΡ‚ΠΈΠ»ΡŒ. Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ опрСдСляСт, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ ΡˆΡ€ΠΈΡ„Ρ‚ ΠΆΠΈΡ€Π½Ρ‹ΠΌ, Π½Π°ΠΊΠ»ΠΎΠ½Π½Ρ‹ΠΌ ΠΈ Ρ‚.Π΄. Если Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· этих свойств Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ, указываСтся Font.PLAIN (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ int ΠΈ Π² классС Font ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π½Π°Π±ΠΎΡ€ констант для удобства Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌ). Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Font.BOLD Π·Π°Π΄Π°Π΅Ρ‚ ΠΆΠΈΡ€Π½Ρ‹ΠΉ ΡˆΡ€ΠΈΡ„Ρ‚, Π° Font.ITALIC – Π½Π°ΠΊΠ»ΠΎΠ½Π½Ρ‹ΠΉ. Для сочСтания этих свойств (ΠΆΠΈΡ€Π½Ρ‹ΠΉ Π½Π°ΠΊΠ»ΠΎΠ½Π½Ρ‹ΠΉ ΡˆΡ€ΠΈΡ„Ρ‚) Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ произвСсти логичСскоС слоТСниС: Font.BOLD|Font.ITALIC.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с этим свойством класса Component ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ setFont ΠΈ getFont.

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ рассмотрСли основныС свойства класса Component. Как Π»Π΅Π³ΠΊΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, всС ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для описания графичСского прСдставлСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ отобраТСния Π½Π° экранС.

БущСствуСт Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ свойство Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π°. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ практичСски всСгда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс состоит ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… прилоТСниях ΠΈΡ… ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС. Для удобства ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹. Π’ AWT сущСствуСт класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊ ΠΈ называСтся – Container. Π•Π³ΠΎ рассмотрСниС – наша ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Ρ‚Π΅ΠΌΠ°. Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ лишь Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ – ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ½ удаляСтся ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ. РассматриваСмоС свойство ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° связь ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° с ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ. Бвойство называСтся parent. Благодаря Π΅ΠΌΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ всСгда «Π·Π½Π°Π΅Ρ‚», Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ ΠΎΠ½ находится.

Container

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ описываСтся классом Container, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся наслСдником Component, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ всСми свойствами графичСского ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Однако основная Π΅Π³ΠΎ Π·Π°Π΄Π°Ρ‡Π° – Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Для этого Π² Π½Π΅ΠΌ объявлСн Ρ†Π΅Π»Ρ‹ΠΉ ряд ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Для добавлСния слуТит ΠΌΠ΅Ρ‚ΠΎΠ΄ add, для удалСния – remove ΠΈ removeAll (послСдний удаляСт всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹).

ДобавляСмыС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ хранятся Π² упорядочСнном спискС, поэтому для удалСния ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ ссылку Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½, Π»ΠΈΠ±ΠΎ Π΅Π³ΠΎ порядковый Π½ΠΎΠΌΠ΅Ρ€ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅. Π’Π°ΠΊΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для получСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅, – всС ΠΎΠ½ΠΈ довольно ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹, поэтому пСрСчислим ΠΈΡ… с ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌΠΈ пояснСниями:

* getComponent(int n) – Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ;

* getComponents() – Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² Π²ΠΈΠ΄Π΅ массива;

* getComponentCount() – Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚;

* getComponentAt(int x, int y) ΠΈΠ»ΠΈ ( Point p ) – Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ;

* findComponentAt(int x, int y) ΠΈΠ»ΠΈ ( Point p ) – Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ Π² сСбя ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ.

ΠœΡ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ( location ) задаСтся ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΡƒΠ³Π»Π°. Π’Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ эти значСния ΠΎΡ‚ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΡƒΠ³Π»Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ являСтся Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΌ систСмы ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ находящСгося Π² Π½Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Если Π²Π°ΠΆΠ½ΠΎ располоТСниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π½Π° экранС Π±Π΅Π·ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ getLocationOnScreen.

Благодаря наслСдованию ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ свойство size. Π­Ρ‚ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ задаСтся нСзависимо ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ полоТСния Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ частично ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ своСго ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° (Ρ‡Ρ‚ΠΎ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСно Π½ΠΈΠΆΠ΅, Π½ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ это допустимо).

Π Π°Π· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ наслСдуСтся ΠΎΡ‚ Component, ΠΎΠ½ сам являСтся ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Π²Ρ‹ΡˆΠ΅ΡΡ‚ΠΎΡΡ‰ΠΈΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ лишь Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ всС элСмСнты слоТного ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Π² иСрархичСскоС Π΄Π΅Ρ€Π΅Π²ΠΎ. Вакая организация Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π½ΠΈΠΌΠΈ, Π½ΠΎ ΠΈ Π·Π°Π΄Π°Π΅Ρ‚ основныС свойства всСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ AWT. Одним ΠΈΠ· Π½ΠΈΡ… являСтся ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ отрисовки ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Алгоритм отрисовки

НачнСм с отрисовки ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° – Ρ‡Ρ‚ΠΎ опрСдСляСт Π΅Π³ΠΎ внСшний Π²ΠΈΠ΄?

Для этой Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ paint. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ вызываСтся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π° экранС. Π£ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, Ρ‚ΠΈΠΏ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ – абстрактный класс Graphics. Π’ этом классС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ мноТСство ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для отрисовки ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΡ… графичСских элСмСнтов – Π»ΠΈΠ½ΠΈΠΉ, ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ², окруТностСй ΠΈ ΠΎΠ²Π°Π»ΠΎΠ², тСкста, ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ ΠΈ Ρ‚.Π΄.

НаслСдники класса Component ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ paint ΠΈ, ΠΏΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ Graphics, Π·Π°Π΄Π°ΡŽΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ прорисовки своСго внСшнСго Π²ΠΈΠ΄Π°:

public void paint(Graphics g) <

g.drawLine(0, 0, getWidth(), getHeight());

g.drawLine(0, getHeight(), getWidth(), 0);

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ двумя линиями, проходящими ΠΏΠΎ Π΅Π³ΠΎ диагоналям:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса Graphics для отрисовки

Рассмотрим ΠΎΠ±Π·ΠΎΡ€Π½ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса Graphics, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для отрисовки.

drawLine(x1, y1, x2, y2)

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ линию Ρ‚ΠΎΠ»Ρ‰ΠΈΠ½ΠΎΠΉ Π² 1 пиксСл, ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ ΠΈΠ· Ρ‚ΠΎΡ‡ΠΊΠΈ ( x1, y1 ) Π² ( x2, y2 ). ИмСнно ΠΎΠ½ использовался Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

drawRect(int x, int y, int width, int height)

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, Ρ‡Π΅ΠΉ Π»Π΅Π²Ρ‹ΠΉ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΠ³ΠΎΠ» находится Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ ( x, y ), Π° ΡˆΠΈΡ€ΠΈΠ½Π° ΠΈ высота Ρ€Π°Π²Π½ΡΡŽΡ‚ΡΡ width ΠΈ height соотвСтствСнно. ΠŸΡ€Π°Π²Π°Ρ сторона ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚ ΠΏΠΎ Π»ΠΈΠ½ΠΈΠΈ x+width, Π° ниТняя – y+height.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ рисованиСм Ρ€Π°ΠΌΠΊΠΈ Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° (ΠΏΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€). ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π»Π΅Π²Ρ‹ΠΉ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΠ³ΠΎΠ» находится Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ (0, 0). Если ΡˆΠΈΡ€ΠΈΠ½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Ρ€Π°Π²Π½Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 100 пиксСлам, Ρ‚ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° x ΠΏΡ€ΠΎΠ±Π΅Π³Π°Π΅Ρ‚ значСния ΠΎΡ‚ 0 Π΄ΠΎ 99. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΡˆΠΈΡ€ΠΈΠ½Π° ΠΈ высота рисуСмого ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½Ρ‹ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. На самом Π΄Π΅Π»Π΅ ΠΏΠΎ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ‚Π°ΠΊΠΎΠ΅ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π² ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ…:

public void paint(Graphics g) <

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

fillRect(int x, int y, int width, int height)

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ. ЛСвая ΠΈ правая стороны ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° проходят ΠΏΠΎ линиям x ΠΈ x+width-1 соотвСтствСнно, Π° вСрхняя ΠΈ ниТняя – y ΠΈ y+height-1 соотвСтствСнно. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ всС пиксСлы ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹:

g.fillRect(0, 0, getWidth(), getHeight());

drawOval(int x, int y, int width, int height)

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ рисуСт ΠΎΠ²Π°Π», вписанный Π² ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ссли ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π²Π½Ρ‹Π΅ стороны (Ρ‚.Π΅. являСтся ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠΌ), ΠΎΠ²Π°Π» становится ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ.

Π‘Π½ΠΎΠ²Π° для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ²Π°Π» Π² Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ ΠΏΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ ΠΈΠ· ΡˆΠΈΡ€ΠΈΠ½Ρ‹ ΠΈ высоты:

g.drawRect(0, 0, getWidth()-1, getHeight()-1);

g.drawOval(0, 0, getWidth()-1, getHeight()-1);

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

fillOval(int x, int y, int width, int height)

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΎΠ²Π°Π».

drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ рисуСт Π΄ΡƒΠ³Ρƒ – Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠ²Π°Π»Π°, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. Π”ΡƒΠ³Π° начинаСтся с ΡƒΠ³Π»Π° startAngle ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ³Π»ΠΎΠ²ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ arcAngle. ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠ³ΠΎΠ» соотвСтствуСт Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ часовой стрСлки, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Π½Π° 3 часа. Π£Π³Π»ΠΎΠ²ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ отсчитываСтся ΠΏΡ€ΠΎΡ‚ΠΈΠ² часовой стрСлки. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² 90 градусов соотвСтствуСт Π΄ΡƒΠ³Π΅ Π² Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΡŒ ΠΎΠ²Π°Π»Π° (Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ ΠΏΡ€Π°Π²ΡƒΡŽ). Π£Π³Π»Ρ‹ «Ρ€Π°ΡΡ‚януты» Π² соотвСтствии с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΠ³Π»ΠΎΠ²ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² 45 градусов всСгда Π·Π°Π΄Π°Π΅Ρ‚ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ Π΄ΡƒΠ³ΠΈ ΠΏΠΎ Π»ΠΈΠ½ΠΈΠΈ, проходящСй ΠΈΠ· Ρ†Π΅Π½Ρ‚Ρ€Π° ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° Π² Π΅Π³ΠΎ ΠΏΡ€Π°Π²Ρ‹ΠΉ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΠ³ΠΎΠ».

fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ сСктор, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ Π΄ΡƒΠ³ΠΎΠΉ, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

drawString(String text, int x, int y)

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° экран тСкст, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ. Π’ΠΎΡ‡ΠΊΠ° (x, y) Π·Π°Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ самого Π»Π΅Π²ΠΎΠ³ΠΎ символа. Для наглядности ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

g.drawString(«abcdefgh», 15, 15);

g.drawLine(15, 15, 115, 15);

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ awt Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅

БостояниС Graphics

ЭкзСмпляр класса Graphics Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для отрисовки. Рассмотрим ΠΈΡ… ΠΏΠΎ порядку.

Π¦Π²Π΅Ρ‚

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ для отрисовки Π»ΠΈΠ½ΠΈΠΉ, ΠΎΠ²Π°Π»ΠΎΠ², тСкста ΠΈ Ρ‚.Π΄. Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Ρ†Π²Π΅Ρ‚. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ½ задаСтся свойством foreground ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Π’ любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° setColor.

public void paint(Graphics g) <

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

ΠŸΠ°ΠΊΠ΅Ρ‚ ΠšΠΎΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

ΠŸΠ°ΠΊΠ΅Ρ‚ ΠšΠΎΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠŸΠ°ΠΊΠ΅Ρ‚ ΠšΠΎΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ спСцифицируСт контСкст повСдСния ΠΏΡ€ΠΈ использовании элСмСнтов ΠΌΠΎΠ΄Π΅Π»ΠΈ для выполнСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. Π’ Π½Π΅ΠΌ задаСтся сСмантика понятий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° вопрос: «Как Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ элСмСнты ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ

ΠŸΠ°ΠΊΠ΅Ρ‚ Автоматы

ΠŸΠ°ΠΊΠ΅Ρ‚ Автоматы ΠŸΠ°ΠΊΠ΅Ρ‚ Автоматы спСцифицируСт ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ построСнии ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ с использованиСм систСм ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² для ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ мноТСства состояний. Π’ Π½Π΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ мноТСсто понятий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для прСдставлСния повСдСния ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² Π²ΠΈΠ΄Π΅ дискрСтного

Java, Java Π²Π΅Π·Π΄Π΅ ΠΈ Π²ΡΡŽΠ΄Ρƒ

Java, Java Π²Π΅Π·Π΄Π΅ ΠΈ Π²ΡΡŽΠ΄Ρƒ Π―Π·Ρ‹ΠΊ Java Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Ρ„ΠΈΡ€ΠΌΠΎΠΉ Sun Microsystems, Inc. ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΎΠ½ прСдназначался для ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ПО Π±Ρ‹Ρ‚ΠΎΠ²Ρ‹Ρ… элСктронных ΠΏΡ€ΠΈΠ±ΠΎΡ€ΠΎΠ², Π½ΠΎ скоро стал ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ²ΡˆΠΈΡ…ΡΡ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ. Π’ ΠΊΠΎΠ½Ρ†Π΅ 1995 Π³ΠΎΠ΄Π° Sun сдСлала Java доступной, Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠ²

9.1 ΠŸΠ°ΠΊΠ΅Ρ‚ ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ms

9.1 ΠŸΠ°ΠΊΠ΅Ρ‚ ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ms Основная идСя, залоТСнная Π² ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ, состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ описываСтся Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… Π΅Π³ΠΎ логичСских частСй названия, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², Π°Π±Π·Π°Ρ†Π΅Π², Π° Π½Π΅ Π² дСталях: расстановка ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ², Π²Ρ‹Π±ΠΎΡ€ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ², ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² Π±ΡƒΠΊΠ².

12.2.5 ΠŸΠ°ΠΊΠ΅Ρ‚ WordViewer

19.3.1. ΠŸΠ°ΠΊΠ΅Ρ‚ iproute2

19.3.1. ΠŸΠ°ΠΊΠ΅Ρ‚ iproute2 Начиная с вСрсии ядра 2.2, сСтСвая подсистСма Linux Π±Ρ‹Π»Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π°, Π² Π½Π΅Π΅ Π±Ρ‹Π»ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй β€” ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ, ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ Π½Π° основС ΠΏΡ€Π°Π²ΠΈΠ» ΠΈ Ρ‚.ΠΏ. Доступ ΠΊ этим возмоТностям прСдоставляСтся ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ iproute2, входящим Π²

ΠŸΠ°ΠΊΠ΅Ρ‚ OpenOffice.org

ΠŸΠ°ΠΊΠ΅Ρ‚ OpenOffice.org ΠžΡ„ΠΈΡΠ½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ OpenOffice.org – это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ качСствСнный ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Linux, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с тСкстовыми Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, элСктронными Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ, изобраТСниями, Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Π—Π° Π΅Π³ΠΎ основу Π±Ρ‹Π» взят ΠΏΠ°ΠΊΠ΅Ρ‚ StarOffice, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Π½Π΅ΠΌΠ΅Ρ†ΠΊΠΎΠΉ Ρ„ΠΈΡ€ΠΌΠΎΠΉ

ΠŸΠ°ΠΊΠ΅Ρ‚ SubtitleRipper

ΠŸΠ°ΠΊΠ΅Ρ‚ SubtitleRipper Π­Ρ‚ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΡΡ‚ΡŒ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ – srttool, subtitle2pgm, pgm2txt, vobsub2pgm, subtitle2vobsub, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ… каТдая свою Π·Π°Π΄Π°Ρ‡Ρƒ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΡ…, ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ DVD-субтитры Π² subrip-тСкстовый ΠΈΠ»ΠΈ VobSub Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹. ΠŸΠΎΡ‚ΠΎΠΊ прСвращаСтся Π² Ρ„Π°ΠΉΠ» Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° PGM ΠΈΠ»ΠΈ PPM, Π° Π·Π°Ρ‚Π΅ΠΌ распознаСтся ΠΈ

8. ЛСкция: ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Π°Ρ модСль Π² Java

8. ЛСкция: ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Π°Ρ модСль Π² Java Π­Ρ‚Π° лСкция являСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ отступлСниСм ΠΎΡ‚ рассмотрСния тСхничСских особСнностСй Java ΠΈ посвящСна Π² основном ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… свойств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Java, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ статичСскиС элСмСнты, абстрактныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ классы, интСрфСйсы,

11. ЛСкция: ΠŸΠ°ΠΊΠ΅Ρ‚ java.awt

11. ЛСкция: ΠŸΠ°ΠΊΠ΅Ρ‚ java.awt Π­Ρ‚Π° лСкция Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ рассмотрСниС Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Java, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ языка ΠΈ входят Π² Π΅Π³ΠΎ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ описываСтся ΠΏΠ°ΠΊΠ΅Ρ‚ java.awt, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ AWT для создания графичСского (ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ) интСрфСйса

13. ЛСкция: ΠŸΠ°ΠΊΠ΅Ρ‚ java.lang

13. ЛСкция: ΠŸΠ°ΠΊΠ΅Ρ‚ java.lang Π’ этой Π»Π΅ΠΊΡ†ΠΈΠΈ рассматриваСтся основная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Java – java.lang. Π’ Π½Π΅ΠΉ содСрТатся классы Object ΠΈ Class, классы-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ для ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², класс Math, классы для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками String ΠΈ StringBuffer, систСмныС классы System, Runtime ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π’ этом ΠΆΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ находятся

14. ЛСкция: ΠŸΠ°ΠΊΠ΅Ρ‚ java.util

14. ЛСкция: ΠŸΠ°ΠΊΠ΅Ρ‚ java.util Π­Ρ‚Π° лСкция посвящСна ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ java.util, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится мноТСство Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… классов ΠΈ интСрфСйсов. Они Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ΄ΠΎΠ±Π½Ρ‹, Ρ‡Ρ‚ΠΎ практичСски любая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ эту Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ. Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π² ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚Π΅ΠΌΠ° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΈΠ»ΠΈ

Π“Π»Π°Π²Π° 25. ΠŸΠ°ΠΊΠ΅Ρ‚

Π“Π»Π°Π²Π° 25. ΠŸΠ°ΠΊΠ΅Ρ‚ Π’ ΠΎΠΌΠ½ΠΈΡ„ΠΎΠ½Ρ‚ΠΎΠ²ΠΎΠΉ систСмС распознавания тСкстов ABBYY FineReader сущСствуСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ ΠΎΠΊΠ½ΠΎ ΠŸΠ°ΠΊΠ΅Ρ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ страницы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ отсканировали ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π»ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ мСню Π€Π°ΠΉΠ» ΠΊ ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚.ΠŸΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ FineReader

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *