1

空のときにプロンプ​​トを表示するテキストボックスを作成したい。setMessage メソッドを使用していますが、正常に動作しています。プロンプトのデフォルトの色を変更するにはどうすればよいですか?

4

1 に答える 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 に答える