Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Медведев_С++_CLI_C#_Java_J#.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.17 Mб
Скачать

IiTipOrt jav'a.Avvt. •)

Import java.Awt.Event.*;

public class CTwoFrames extends Frame

<

Frame chlldFrame;

TextFleld ourTextFleld;

Button ourButton;

Polnt polnt;

Color [] colors;

int n;

// Класс прикладного окна

// Дочерний фрейм

// Редактор

// Кнопка

U Начальные координаты строки

// Массив цветов флага

// Индекс массива цветов colors

public CTwoFrames() // Конструктор

{

setTltle("Russlan flag"); // Установить заголовок прикладного окна

setSize (new Dimension (400, 200));

this.setBackground(Color.llghtGray);

ourTextFleld = new TextField ( );// Создать редактор

ourTextFleld,setSize(150, 20); //Установитьпозицию

ourTextField.setText ("Russia"); // Установить текст в редакторе

ourButton= new Button ("OK"); // Создать кнопку

// Подписать обработчик на событие кнопки

ourButton.addActionLlstener (new ActionListener ()

{

public void actionPerformed (ActionEvent aE)

<

n++; // К следующему цвету флага

if(n >= 3) n= 0;

repaint ();

>

»;

// Подписать обработчик на событие MouseDown мыши

this.addMouseListener (new MouseAdapter ()

{

public void mousePressed (MouseEvent mE)

{

point.x= mE.getX ();

point.y= mE.getY ();

repaint ( );

»;

>

// Примененить внутренний анонимный класс для закрытия окна

this.addWindowListener (new WindowAdapter ( )

{

public void windowClosing (WindowEvent wE)

Ч

System.exit (0);

>

»;

point= new Point ( );

point.x= 100; point.y= 100;

colors= new Color [3]; // Создать массив цветов

colors [0]= Color.white; // Белый цвет

colors [1]= Color.blue; // Синий цвет

colors [2]= Color.red; // Красный цвет

childFrame= new Frame ( ); // Создать дочернюю форму и

childFrame.setSize (200, 100); // с размером

childFrame.setLayout (new FlowLayout ( ));

childFrame.add (ourTextField); // Добавить редактор

childFrame.add (ourButton); // Добавить кнопку

childFrame.show ( );

>

// Перерисовать область клиента окна

public void paint (Graphics g)

{

Rectangle rect= new Rectangle (10, 40, 130, 30);

for(int i= 0; I < 3; i++) // Нарисовать флаг

{

g.setColor (colors[i]);

g.flllRect // Нарисовать прямоугольник

( rect.x, rect.y, rect.width, rect.height);

rect.translate (0, 30); // Переместить прямоугольник вниз >

// Нарисовать строку от носика курсора мыши

g.setColor (colors[n]);

g.drawString (ourTextField.getText ( ), point.x, point.y); >

public static void main ( ) // Главная функция

{

CTwoFrames cT= new CTwoFrames ( );

cT.show ( ); >

Java и C#. В на языке Java примера 10.9.2 в классе CTwoFrames прикладного

окна объявлена ссылка childFrame на дочернее окно типа Frame. При созда-

нии дочернего окна в конструкторе CTwoFrames() применены оператор new и

свойство setSize(). Добавленные с помощью функции add управляющие эле-

менты ourTextField и ourButton размещает в области клиента дочернего окна

менеджер расстановки типа FIowLayout, который указан в свойстве

setLayout() прикладного окна.

'5и»>»>Л'ч ' ' »" 'Уя'й

Рис. 10.9.2. Прикладное окно приложения примера 10.9.2 с двумя фреймами

на языке Java

Пример 10.9.3. Программа с дочерними окнами на языке C++/CLI.

///////////////

// C++/CLI

#include "stdafx.h"

#uslng <System.Drawing.dll>

#using <System.Windows.Forms.dll>

using namespace System;

using namespace System::Windows::Forms;

using namespace System::Drawing;

ref class CTwoForms : public Form // Класс прикладного окна

{

Form ^chlldForm; // Дочерняя форма

TextBox ^pTextBox; //Дескриптор редактора

Button ^pButton; // Дескриптор кнопки

Point point; // Начальные координаты строки

array<Color ^> ^colors; // Массив цветов