Сегодня мы продолжим знакомится с компонентами Java. Я не стал включать откомпилированные примеры, для лучшей загрузки страницы, поэтому тебе придётся откомпилировать самому. Так что читай, изучай, запоминай всё, что я тебе буду говорить.
Начнём мы с компонента, похожего на TRadioBox в Delphi.
import java.awt.*;
import java.applet.*;
public class CheckboxGroupDemo extends Applet {
public void init() {
setLayout(null);
int width = Integer.parseInt(getParameter("width"));
int height = Integer.parseInt(getParameter("height"));
CheckboxGroup g = new CheckboxGroup();
Checkbox g1 = new Checkbox("Java", g, true);
Checkbox g2 = new Checkbox("Delphi", g, false);
Checkbox g3 = new Checkbox("C++", g, false);
add(g1);
add(g2);
add(g3);
g1.reshape(0, 0, width, height / 3);
g2. reshape(0, height / 3, width, height / 3);
g3.reshape(0, 2 * height / 3, width, height / 3);
} }
Ты уже знаешь все операторы, которые я использовал здесь, поэтому нет смысла рассказывать в очередной раз всё, что здесь написано. Для экономии места, я буду приводить примеры, и останавливаться, только на индивидуальных особенностях.
Теперь познакомимся с выпадающим списком (аналог TcomboBox):
import java.awt.*;
import java.applet.*;
public class ChoiceDemo extends Applet {
public void init() {
setLayout(null);
int width = Integer.parseInt(getParameter("width"));
int height = Integer.parseInt(getParameter("height"));
Choice b = new Choice();
b.addItem("Java");
b.addItem("Delphi");
b.addItem("C++");
b.select("Java");
add(b);
b.reshape(0, height / 2, width, height / 2);
} }
Строка Choice b = new Choice() Создаёт новый выпадающий список. С помощью b.addItem("Java") я добавляю новый элемент с надписью "Java". b.select("Java") делает элемент Java выделенным. Ну а далее, всё как всегда: добавляем элемент к апплету и изменяем его размеры.
Теперь познакомимся с простым списком (аналог TListBox):
import java.awt.*;
import java.applet.*;
public class ListDemo extends Applet {
public void init() { setLayout(null);
int width = Integer.parseInt(getParameter("width"));
int height = Integer.parseInt(getParameter("height"));
List b1 = new List(0, true);
List b2 = new List(0, false);
b1.addItem("Java");
b1.addItem("Delphi");
b1.addItem("C++");
b1.addItem("ADA");
b2.addItem("Line 1");
b2.addItem("Line 2");
b2.addItem("Line 3");
b2.addItem("Line 4");
b2.addItem("Line 5");
browser.select(1);
add(b1);
add(b2);
b1.reshape(0, 0, width, height / 2);
b2.reshape(0, height / 2, width, height / 2);
} }
Здесь всё очень похоже на выпадающий список. В принципе, этого и следовало ожидать, потому что компоненты очень похожи, просто один выпадает а другой нет. Двигаемся дальше вместе с полосами прокрутки:
import java.awt.*;
import java.applet.*;
public class ScrollbarDemo extends Applet {
public void init() {
setLayout(null);
int width = Integer.parseInt(getParameter("width"));
int height = Integer. parseInt(getParameter("height"));
Scrollbar hs = new Scrollbar(Scrollbar.HORIZONTAL, 50, width / 10, 0,100);
Scrollbar vs = new Scrollbar(Scrollbar.VERTICAL, 50, height / 2, 0, 100);
add(hs);
add(vs);
int thickness = 16;
hs.reshape(0, height - thickness, width - thickness, thickness);
vs.reshape(width - thickness, 0, thickness, height - thickness);
} }
Теперь познакомимся с текстовым полем:
import java.awt.*;
import java.applet.*;
public class TextAreaDemo extends Applet {
public void init() {
setLayout(null);
int width = Integer.parseInt(getParameter("width"));
int height = Integer.parseInt(getParameter("height"));
String val = "This is first lene.\n" + "this is 2 line";
TextArea text = new TextArea(val, 80, 40);
add(text);
text.setBounds(0, 0, width, height);
}}
С помощью String val = "This is first lene.\n" + "this is 2 line" я создаю текстовую переменную val в которую заношу текст. Текст состоит из двух строк. В качестве разделителя строк выступает "\n" (слэш и буква n). При создании нового текстового поля, я указываю эту переменную (val) в качестве первого параметра (TextArea text = new TextArea(val, 80, 40)). Этим я заношу текст из переменной val в текстовое поле. Остальные операторы как всегда.
И напоследок я покажу как создать два лейбла (мы их уже изучали) и два поля для ввода текста. Я оформил всё это как приглашение ввести пароль:
import java.awt.*;
import java.applet.*;
public class TextFieldDemo extends Applet {
public void init() {
setLayout(null);
int width = Integer.parseInt(getParameter("width"));
int height = Integer.parseInt(getParameter("height"));
Label namep = new Label("Name : ", Label.RIGHT);
Label passp = new Label("Password : ", Label.RIGHT);
TextField name = new TextField(8);
TextField pass = new TextField(8);
pass.setEchoChar('*');
add(namep);
add(name);
add(passp);
add(pass);
int space = 30;
int w1 = width / 3;
namep.setBounds(0, 10, w1, space);
name.setBounds(w1, 10, w1, space);
passp.setBounds(0, 60, w1, space);
pass.setBounds(w1, 60, w1, space);
} }
В принципе, всё должно быть ясно. Толь ко один оператор может вызвать у тебя смущение - pass.setEchoChar('*'). Он указывает символ, который будет показывается в строке ввода вместо набираемых символов. Я указал звёздочку, которая часто используется в полях для ввода пароля. Когда ты запустишь этот пример, то перед тобой появится два поля ввода. Если ты будешь вводить текст в первое поле, то ты увидишь всё что вводишь. Если вводить во второй окно, то увидишь, только звёздочки. Вот это и есть эффект pass.setEchoChar('*').
На сегодня всё. Я не делал архив с примерам, потому что они полностью даны в статье. Просто копируй их и сохраняй в файл. Так мы и узнаем, как хорошо ты читал всё, что я тебе рассказывал.