空のときにプロンプトを表示するテキストボックスを作成したい。setMessage メソッドを使用していますが、正常に動作しています。プロンプトのデフォルトの色を変更するにはどうすればよいですか?
質問する
1203 次
1 に答える
1
プロンプトの色を変更したい場合はListener
、フォーカス イベントに a を追加するだけです。
public class StackOverflow
{
public static void main(String[] args)
{
final Display display = new Display();
Shell shell = new Shell(display);
shell.setText("StackOverflow");
shell.setLayout(new GridLayout(1, true));
final Text text = new Text(shell, SWT.BORDER | SWT.SEARCH);
text.setForeground(display.getSystemColor(SWT.COLOR_RED));
text.setText("Enter something");
text.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, true));
text.addListener(SWT.FocusOut, new Listener()
{
@Override
public void handleEvent(Event arg0)
{
if("".equals(text.getText()))
{
text.setForeground(display.getSystemColor(SWT.COLOR_RED));
text.setText("Enter something");
}
}
});
text.addListener(SWT.FocusIn, new Listener()
{
@Override
public void handleEvent(Event arg0)
{
if("Enter something".equals(text.getText()))
{
text.setForeground(display.getSystemColor(SWT.COLOR_BLACK));
text.setText("");
}
}
});
Label label = new Label(shell, SWT.NONE);
label.setFocus();
label.forceFocus();
shell.pack();
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
フォーカスされていない/空:
フォーカス/空でない:
ご覧のとおり、「プロンプト」は赤くなりました。
于 2012-11-27T15:31:32.683 に答える