Catch (NumberFormatException e)

{

tB.setText (tB.getText () +

" Error! Enter the correct number");

}

}

});

this.addWindowListener (new WindowAdapter ( )

{

public void windowClosing (WindowEvent wE)

{

System.exit (0);

}

});

}

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

{

CTextBox cT= new CTextBox ( );

cT.show ( );

}

}

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

C#

using System;

using System.Drawing;

using System.Windows.Forms;

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

{

TextBox tB; // Редактор

Button b; // Кнопка

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

{

Text="TestNumber"; // Установить заголовок прикладного окна

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

tB.Location= new Point (10, 30);// Разместить

tB.Size= new Size (250, 20); // Установить размер

tB.Text= "Enter the number"; // Установить текст в редакторе

this.Controls.Add (tB); // Добавить редактор в форму

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

b.Text= "OK"; // Установить название кнопки

b.Location= new Point (10, 50); // Разместить кнопку

b.Size= new Size (40, 30); // Установить размер кнопки

Controls.Add (b); // Добавить кнопку в форму

b.Click += new EventHandler (But); // Подписать обработчик

}

private void But (Object obj, EventArgs a)

{

string st= tB.Text;

Try

{

int n=System.Convert.ToInt32 (st);

if(n<0) tB.Text= "negative";

else tB.Text= "positive";

}

//catch (Exception e)

Catch (FormatException e)

{

tB.Text= tB.Text + " Error! Enter the correct number";

}

}

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

{

CTextBox cT= new CTextBox ( );

Application.Run (cT);

}

}

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

//C++/CLI

#include "stdafx.h"

#using <System.Drawing.dll>

#using <System.Windows.Forms.dll>

using namespace System;

using namespace System::Windows::Forms;

using namespace System::Drawing;

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

{

TextBox ^tB; // Редактор

Button ^b; // Кнопка

public:

CTextBox( ) // Конструктор

{

Text="TestNumber"; // Установить заголовок прикладного окна

tB= gcnew TextBox ( ); // Создать редактор

tB->Location= *gcnew Point (10, 30); // Разместить

tB->Size= *gcnew Drawing::Size (250, 20); // Установить размер

tB->Text= "Enter the number"; // Установить текст в редакторе

this->Controls->Add (tB); // Добавить редактор в форму

b= gcnew Button (); // Создать кнопку

b->Text= "OK"; // Установить название кнопки

b->Location= *gcnew Drawing::Point (10, 50); // Разместить кнопку

b->Size= *gcnew Drawing::Size (40, 30); // Установить размер

Controls->Add (b); // Добавить кнопку в форму

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

b->Click += gcnew EventHandler (this, &CTextBox::But);

}

private:

void But (Object ^obj, EventArgs ^a)

{

String ^st= tB->Text;

try

{

int n=System::Convert::ToInt32 (st);

if(n<0) tB->Text= "negative";

else tB->Text= "positive";

}

//catch (Exception e)

catch (FormatException ^e)

{

tB->Text= tB->Text + " Error! Enter the correct number";

}

}

};

void main ( )

{

Application::Run (gcnew CTextBox ( )); // Выполнить

}

C# и C++/CLI. Обработчик But() кнопки извлекает строку из редактора текста, применив свойство Text редактора. В блоке try-catch осуществляется преобразование извлечённой строки в целое число с помощью статической функции ToInt32() класса Convert. Если символы преобразуемой строки не являются цифрами, то во время преобразования будет выброшено исключение типа FormatException и в текстовом редакторе появится строка Error! Enter the correct number. Иначе положительное число в поле редактора заменится на слово positive, а отрицательное на negative.

Java и J#. На событие кнопки с помощью функции addActionListener() подписан объект анонимного класса ActionListener адаптера с обработчиком actionPerformed(). Обработчик в блоке try-catch извлекает из объекта tB редактора строку, используя статическую функцию parseInt() класса Integer и свойство getText() редактора. Результат работы программы совпадает с результатом работы программы на языке C#.

Обратите внимание, что в теле конструктора CTextBox( ) на языке Java аргумент функции setLayout (null) установки менеджера расстановки равен null, поэтому размещение редактора и кнопки в окне осуществляется не менеджером, а программистом с помощью свойств setLocation(), setSize() и setText().

catch (NumberFormatException e) - student2.ru

Рис. 9.10.4. Прикладное окно приложения примера 9.10.4 после ввода положительного числа и нажатия на кнопку

Наши рекомендации