Применение CheckBox
Else
Try
Catch(NumberFormatException e)
Try
Public void focusLost(FocusEvent e)
Public void focusGained(FocusEvent e)
{
// припопаданиинатекстовоеполе
}
{
// привыходеизтекстовогополя
Calculate();
}
});
form.add(tf1); // добавка в формутекстовогополя tf1
// заданиепараметроввтороготекстовогополя
tf2= new JTextField();
tf2.setBounds(180,80,100,20);
tf2.setText("0");
tf2.addFocusListener(new FocusListener()
{
public void focusGained(FocusEvent e)
{
// припопаданиинатекстовоеполе
}
public void focusLost(FocusEvent e)
{
// привыходеизтекстовогополя
Calculate();
}
});
form.add(tf2); // добавка в формутекстовогополя tf2
// заданиепараметровкнопки
bt=new JButton();
bt.setBounds(20,130,140,20);
bt.setLabel("Завершить");
form.add(bt);
// добавлениеоткликанасобытие click
bt.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
// принажатиикнопкиbtпереход в даннуюточку
System.exit(0);
}
});
form.show();
}
public void Calculate()
{
String s1;
double first;
int second;
double Sum;
boolean p;
s1=tf1.getText();
p=true;
first=0;
second=0;
{
first = Double.parseDouble(s1);
}
{
tf1.setText("0.0");
p=false;
}
s1=tf2.getText();
{
second = Integer.parseInt(s1);
}
catch(NumberFormatException e)
{
tf2.setText("0");
p=false;
}
if(p)
{
Sum=first+second;
s1=Double.toString(Sum);
lb.setText("Ответ:"+s1);
}
{
lb.setText("Неправильно:");
}
}
public static void main (String args[])
{
Prog_2_4 f;
f= new Prog_2_4();
}
}
Java 2 ME
import javax.microedition.midlet.*;
import com.sun.lwuit.*;
import com.sun.lwuit.events.*;
import com.sun.lwuit.geom.*;
import com.sun.lwuit.layouts.*;
import java.lang.Math.*;
public class Prog_2_4 extends MIDlet
{
Form form;
Label lb;
TextField tf1;
TextField tf2;
Button bt;
public void startApp()
{
int w,h;
Dimension d=new Dimension(200,200);
Display.init(this);
form = new Form();
form.setPreferredSize(d);
form.setTitle("Лабораторная 2");
w=form.getWidth();
h=form.getHeight();
CoordinateLayout e = new CoordinateLayout(w,h);
form.setLayout(e);
lb=new Label();
lb.setX(20);
lb.setY(30);
lb.setText("Ответ: ");
form.addComponent(lb);
tf1 = new TextField();
tf1.setX(20);
tf1.setY(60);
tf1.setText("0.0");
tf1.addFocusListener(new FocusListener()
{
public void focusGained(Component e)
{
// при попадании на текстовое поле
}
public void focusLost(Component e)
{
// при выходе из текстового поля
Calculate();
}
});
form.addComponent(tf1);
tf2= new TextField();
tf2.setX(20);
tf2.setY(90);
tf2.setText("0");
tf2.addFocusListener(new FocusListener()
{
public void focusGained(Component e)
{
// при попадании на текстовое поле
}
public void focusLost(Component e)
{
// при выходе из текстового поля
Calculate();
}
});
form.addComponent(tf2);
bt=new Button();
bt.setX(20);
bt.setY(120);
bt.setText("Завершить");
bt.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
notifyDestroyed();
}
});
form.addComponent(bt);
form.show();
}
public void Calculate()
{
String s1;
double first;
int second;
double Sum;
boolean p;
s1=tf1.getText();
p=true;
first=0;
second=0;
try
{
first = Double.parseDouble(s1);
}
catch(NumberFormatException e)
{
tf1.setText("0.0");
p=false;
}
s1=tf2.getText();
try
{
second = Integer.parseInt(s1);
}
catch(NumberFormatException e)
{
tf2.setText("0");
p=false;
}
if(p)
{
Sum=first+second;
s1=Double.toString(Sum);
lb.setText("Ответ:"+s1+" ");
}
else
{
lb.setText("Неправильно ");
}
}
public void pauseApp()
{
}
public void destroyApp(boolean unconditional)
{
}
}
4) Использование переключателей флажков (checkbox)
Пример:
Покупатель может купить процессор за 2500 рублей и видеокарту за 1300 рублей
(флажки). Рассчитаться может наличными, по банковской карточке (+3%) и по дисконтной карточке (-10%) (3 переключателя). Сумма покупки выводится в Label.
Отклик на событие create:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
// form
Form1->Top=0;
Form1->Left=0;
Form1->Width=500;
Form1->Height=300;
Form1->Caption="Лабораторная 2";
// checkbox1
CheckBox1->Top=50;
CheckBox1->Left=20;
CheckBox1->Width=150;
CheckBox1->Height=20;
CheckBox1->Caption="Процессор";
CheckBox1->Checked=true;
// checkbox2
CheckBox2->Top=70;
CheckBox2->Left=20;
CheckBox2->Width=150;
CheckBox2->Height=20;
CheckBox2->Caption="Видеокарта";
CheckBox2->Checked=false;
// label
Label1->Top=220;
Label1->Left=20;
Label1->Width=400;
Label1->Height=40;
Label1->Caption="Ответ:";
}
CheckBox1->Checked=true; // выбран при запуске
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
Calculate();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CheckBox2Click(TObject *Sender)
{
Calculate();
}
При изменении выбрано/не выбрано CheckBox1 и CheckBox2 вызывается Calculate();
Заголовочный файл TForm1.h
class TForm1 : public TForm
{
__published: // IDE-managed Components
TCheckBox *CheckBox1;
TCheckBox *CheckBox2;
TLabel *Label1;
void __fastcall FormCreate(TObject *Sender);
void __fastcall CheckBox1Click(TObject *Sender);
void __fastcall CheckBox2Click(TObject *Sender);
private: // User declarations
public: // User declarations
void Calculate();
int Sum;
__fastcall TForm1(TComponent* Owner);
};
Функция расчета стоимости:
void TForm1::Calculate()
{
Sum=0;
if(CheckBox1->Checked==true)
{
Sum += 2500;
}
if(CheckBox2->Checked==true)
{
Sum += 1300;
}
Label1->Caption="Ответ: "+IntToStr(Sum);
}
Работа приложения:
Задание CheckBox для стандартного SE и мобильного приложений
SE:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.Math.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.*;
public class Prog_2_5
{
int Sum;
JFrame form;
JCheckBox cb1;
JCheckBox cb2;
JLabel lb;
Prog_2_5 ()
{
form = new JFrame();
form.setSize (500,300);
form.setTitle ("лабораторная 2");
form.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
form.setLayout(null);
cb1 = new JCheckBox();
cb1.setBounds(20,50,180,20);
cb1.setText("Процессор");
cb1.setSelected(true);
cb1.addItemListener(new ItemListener()
{