Задание ширины и высоты для поля редактирования затрудняет просмотр текста в ежевике
Я использовал EditField
с некоторой указанной шириной и высотой, которая работает хорошо, но, когда я ввожу текст в EditField
Я не могу увидеть текст, и иногда, когда я нажимаю на это, я получаю NullPointerException
, Я не могу понять, введен ли текст или нет. Кроме того, я не могу видеть курсор в моем поле. Если есть какие-либо ошибки, пожалуйста, дайте мне предложения.
Мой код:
private EditField edto;
private int tosetWidth =400 ,tosetHeight = 50;
public WelcomeScreen()
{
/* Border For EditFields */
Border bdr = BorderFactory.createRoundedBorder(new XYEdges(4, 4, 4, 4),Border.STYLE_SOLID);
edto = new EditField(){
protected void layout(int width, int height)
{
setExtent(tosetWidth, tosetHeight);
}
};
edto.setBorder(bdr);
1 ответ
Решение
Текст не отображается из-за этого
protected void layout(int width, int height)
{
setExtent(tosetWidth, tosetHeight);
}
просто удалите и попробуйте ваш код работает
если вы хотите редактировать поле с вертикальной прокруткой и фиксированным размером, попробуйте выполнить следующие действия
/**
* A class extending the MainScreen class, which provides default standard
* behavior for BlackBerry GUI applications.
*/
public final class MyScreen extends MainScreen
{
/**
* Creates a new MyScreen object
*/
public MyScreen()
{
// Set the displayed title of the screen
setTitle("My Edit box Example");
VerticalFieldManager vr=new VerticalFieldManager(VERTICAL_SCROLL|VERTICAL_SCROLLBAR)
{
protected void sublayout(int maxWidth, int maxHeight) {
super.sublayout(200,100);
setExtent(200, 100);
}
};
Border bdr = BorderFactory.createRoundedBorder(new XYEdges(4, 4, 4, 4),Border.STYLE_SOLID);
EditField edto = new EditField(){
public void paint(Graphics g)
{
getManager().invalidate();
super.paint(g);
}
};
vr.setBorder(bdr);
vr.add(edto);
add(vr);
}
}
вы можете получить вывод следующим образом