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().
Рис. 9.10.4. Прикладное окно приложения примера 9.10.4 после ввода положительного числа и нажатия на кнопку