Лейблы работают правильно: поместите лейбл на форму. Это особенно важно для полей ввода (TextFields
) и областей текста (Text areas
), где нет лейблов. Если мы просто хотим поместить текстовое сообщение на форму, то это также применимо. Мы можем использовать метод drawString()
внутри метода paint()
для помещения текста в определённое место. Когда мы используем лейблы, они позволяют нам через управление расположением добавлять другие компоненты текста (мы вернёмся к этому позже).
Используя конструктор, мы можем создать лейбл с начальным текстом (это наш обычный подход), а также лейбл со выравниванием по центру (CENTER
), слева (LEFT
) и справа (RIGHT
). Если мы забудем значения, можно получить их с помощью методов getText()
и getAlignment()
, а также изменить их с помощью методов setText()
и setAlignment()
. В следующем примере демонстрируются особенности лейблов:
//: Label1.java
// Использование лейблов
import java.awt.*;
import java.applet.*;
public class Label1 extends Applet {
TextField t1 = new TextField("t1", 10);
Label labl1 = new Label("TextField t1");
Label labl2 = new Label(" ");
Label labl3 = new Label(" ", Label.RIGHT);
Button b1 = new Button("Test 1");
Button b2 = new Button("Test 2");
public void init() {
add(labl1); add(t1);
add(b1); add(labl2);
add(b2); add(labl3);
}
}
``````java
public class Example {
public boolean action(Event evt, Object arg) {
if (evt.target.equals(b1)) {
labl2.setText("Текст установлен в лейбл");
} else if (evt.target.equals(b2)) {
if (labl3.getText().trim().length() == 0) {
labl3.setText("labl3");
}
if (labl3.getAlignment() == Label.LEFT) {
labl3.setAlignment(Label.CENTER);
} else if (labl3.getAlignment() == Label.CENTER) {
labl3.setAlignment(Label.RIGHT);
} else if (labl3.getAlignment() == Label.RIGHT) {
labl3.setAlignment(Label.LEFT);
}
} else {
return super.action(evt, arg);
}
return true;
}
}
///:~
## Начнем с наиболее типичного использования меток: помечивание текстового поля или области для ввода текста. Во втором примере, когда мы нажимаем кнопку `test 1`, строка пустых пробелов вставляется в поле с помощью метода `setText()`. Поскольку количество пустых пробелов не равно количеству символов (в пропорциональной шрифтовой семье), при вставке текста в метку мы видим, что часть текста будет отброшена. В третьем примере, когда мы первый раз нажимаем кнопку `test 2`, обнаруживаем, что метка пустая (метод `trim()` удаляет пробелы в конце каждой строки) и в начале левой колонки вставлена короткая метка. При последующих нажатиях кнопок мы можем наблюдать эффекты изменения. Мы можем полагать, что можем создать пустой тег и затем использовать `setText()` для внесения текста внутрь него. Однако мы не можем поместить текст внутрь пустого тега — вероятно, это связано с тем, что пустой тег не имеет ширину. Таким образом, создание пустого тега без текста бесполезно.
```В приведённом примере внутри тега `blank` содержится множество пробелов, поэтому он достаточно большой для помещения последующего текста.Аналогично, метод `setAlignment()` не оказывает влияния на типичный текстовый тег, созданный через конструктор. Ширина такого тега равна ширине текста, поэтому её нельзя как-либо отрегулировать. Однако если мы создаём длинный тег и затем укорачиваем его, то можно заметить эффект регулировки.
Эти ситуации, когда события происходят вместе с минимальной шириной, распознаются используемым по умолчанию менеджером компоновки. Часть, посвящённая менеджерам компоновки, представлена в конце данной главы.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )