Public void itemStateChanged(ItemEvent e)

Public void itemStateChanged(ItemEvent e)

{

Calculate(); // при изменении выбрано/не выбрано

}

});

form.add(cb1);

cb2 = new JCheckBox();

cb2.setBounds(20,70,180,20);

cb2.setText("Видеокарта");

cb2.setSelected(false);

cb2.addItemListener(new ItemListener()

{

{

Calculate();// при изменении выбрано/не выбрано

}

});

form.add(cb2);

lb = new JLabel();

lb.setBounds(20,220,400,40);

lb.setText("Ответ:");

form.add(lb);

form.show();

}

public void Calculate()

{

String s1;

Sum=0;

if(cb1.isSelected()==true)

{

Sum += 2500;

}

if(cb2.isSelected()==true)

{

Sum += 1300;

}

s1=Integer.toString(Sum);

s1="Ответ: "+s1;

lb.setText(s1);

}

public static void main (String args[])

{

Prog_2_5 f;

f= new Prog_2_5();

}

}

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_5 extends MIDlet

{

int Sum;

Form form;

CheckBox cb1;

CheckBox cb2;

Label lb;

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);

cb1=new CheckBox();

cb1.setX(20);

cb1.setY(30);

cb1.setText("Процессор");

cb1.setSelected(true);

cb1.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

Calculate();

}

});

form.addComponent(cb1);

cb2=new CheckBox();

cb2.setX(20);

cb2.setY(60);

cb2.setText("Видеокарта");

cb2.setSelected(false);

cb2.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

Calculate();

}

});

form.addComponent(cb2);

lb = new Label();

lb.setX(10);

lb.setY(220);

lb.setText("Ответ: ");

form.addComponent(lb);

form.show();

}

public void Calculate()

{

String s1;

Sum=0;

if(cb1.isSelected()==true)

{

Sum += 2500;

}

if(cb2.isSelected()==true)

{

Sum += 1300;

}

s1=Integer.toString(Sum);

s1="Ответ:"+s1;

lb.setText(s1);

}

public void pauseApp()

{

}

public void destroyApp(boolean unconditional)

{

}

}

Запускается главный проект, следует установить!

можно убрать бегущий заголовок

cb2=new CheckBox();

cb2.setX(20);

cb2.setY(60);

cb2.setText("Видеокарта");

cb2.setSelected(false);

cb2.setTickerEnabled(false);

lb.setText("Ответ: ");

Если установить

lb.setText("Ответ:");

то при выполнении

s1="Ответ:"+s1;

lb.setText(s1);

строка обрезается (ширина Label уже не увеличивается)

5) Использование переключателей (radiobutton)

На C++ Builder

void __fastcall TForm1::FormCreate(TObject *Sender)

{

Form1->Top=0;

Form1->Left=0;

Form1->Width=500;

Form1->Height=400;

Form1->Caption="Лабораторная 2";

CheckBox1->Top=50;

CheckBox1->Left=20;

CheckBox1->Width=150;

CheckBox1->Height=20;

CheckBox1->Caption="Процессор";

CheckBox1->Checked=true;

CheckBox2->Top=70;

CheckBox2->Left=20;

CheckBox2->Width=150;

CheckBox2->Height=20;

CheckBox2->Caption="Видеокарта";

CheckBox2->Checked=false;

Label1->Top=320;

Label1->Left=20;

Label1->Width=400;

Label1->Height=40;

Label1->Caption="Ответ:";

RadioButton1->Left=20;

RadioButton1->Top=100;

RadioButton1->Width=150;

RadioButton1->Height=20;

RadioButton1->Checked=true;

RadioButton1->Caption="Обычный";

RadioButton2->Left=20;

RadioButton2->Top=130;

RadioButton2->Width=150;

RadioButton2->Height=20;

RadioButton2->Caption="Карточка";

RadioButton3->Left=20;

RadioButton3->Top=160;

RadioButton3->Width=150;

RadioButton3->Height=20;

RadioButton3->Caption="Дисконт";

}

Объединение радиокнопок через RadioGroup:

void __fastcall TForm1::FormCreate(TObject *Sender)

{

Form1->Top=0;

Form1->Left=0;

Form1->Width=500;

Form1->Height=400;

Form1->Caption="Лабораторная 2";

CheckBox1->Top=50;

CheckBox1->Left=20;

CheckBox1->Width=150;

CheckBox1->Height=20;

CheckBox1->Caption="Процессор";

CheckBox1->Checked=true;

CheckBox2->Top=70;

CheckBox2->Left=20;

CheckBox2->Width=150;

CheckBox2->Height=20;

CheckBox2->Caption="Видеокарта";

CheckBox2->Checked=false;

Label1->Top=320;

Label1->Left=20;

Label1->Width=400;

Label1->Height=40;

Label1->Caption="Ответ:";

RadioGroup1->Top=100;

RadioGroup1->Left=20;

RadioGroup1->Width=150;

RadioGroup1->Height=120;

RadioGroup1->Caption="Вид оплаты";

RadioGroup1->Items->Add("Обычный");

RadioGroup1->Items->Add("Карточка");

RadioGroup1->Items->Add("Дисконт");

RadioGroup1->ItemIndex=0; // выбран обычный

}

Для произвольного размещения группы кнопок GroupBox.

Установим для RadioGroup отклик на событие выбрана одна из кнопок:

void __fastcall TForm1::RadioGroup1Click(TObject *Sender)

{

Calculate();

}

Измененный вариант Calculate()

double pr; - объявлена вместе с Sum

void TForm1::Calculate()

{

Sum=0;

if(CheckBox1->Checked==true)

{

Sum += 2500;

}

if(CheckBox2->Checked==true)

{

Sum += 1300;

}

if(RadioGroup1->ItemIndex==0)

{

// ничего не делать

}

if(RadioGroup1->ItemIndex==1)

{

// карточка + 3%

pr=Sum*0.03;

pr=floor(pr);

Sum += pr;

}

if(RadioGroup1->ItemIndex==2)

{

// дисконт - 10%

pr=Sum*0.1;

pr=floor(pr);

Sum -= pr;

}

Label1->Caption="Ответ: "+IntToStr(Sum);

}

На java ButtonGroup сам по себе невидим на форме, он объединяет радиокнопки, расположенные на форме:

Java 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;

JRadioButton jr1;

JRadioButton jr2;

JRadioButton jr3;

ButtonGroup bg;

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()

{

public void itemStateChanged(ItemEvent e)

{

Calculate();

}

});

form.add(cb1);

cb2 = new JCheckBox();

cb2.setBounds(20,70,180,20);

cb2.setText("Видеокарта");

cb2.setSelected(false);

cb2.addItemListener(new ItemListener()

{

public void itemStateChanged(ItemEvent e)

{

Calculate();

}

});

form.add(cb2);

lb = new JLabel();

lb.setBounds(20,220,400,40);

lb.setText("Ответ:");

form.add(lb);

jr1=new JRadioButton();


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: