0

私のプロジェクトでは、1つのコンポジットでいくつかの再生、一時停止、停止ボタンを作成する必要があります。そのために、1つのコンポジットを作成し、そこにこれらのボタンを追加しました。また、各ボタンの画像を追加しました。しかし、描いた後は見栄えが良くありません。ボタンの画像が良くないということです。クライアントは満足していません。ラベルに画像を追加して、ラベルにトグルボタンアクションを与えることができるようになりましたか?ラベルに画像を追加できることはわかっています。しかし、ラベルをクリックしてもボタン効果はありません。

4

2 に答える 2

1

「ボタン」のカスタムルックが必要な場合は、カスタム画像のラベルを使用できます(1つは通常の状態用、もう1つは「プッシュ」状態用です。次のようなものです。

final Label stop = new Label(composite, SWT.NONE);
stop.setSize(STOP_IMG.getImageData().width, STOP_IMG.getImageData().height)

stop.setBackgroundImage(STOP_IMG);
stop.addMouseListener(new MouseAdapter()
{
    @Override
    public void mouseUp(MouseEvent e)
    {
        stop.setBackgroundImage(STOP_IMG);              
    }

    @Override
    public void mouseDown(MouseEvent e)
    {
        stop.setBackgroundImage(STOP_DOWN_IMG);
        // DO ACTION
    }           
});

優れたUIの場合は、MouseTrackリスナーを追加して、マウスオーバー状態にさまざまな画像を設定することもできます。

これの欠点は、マウスイベントにのみ応答するため、アクセスしにくくなることです。このアプローチを採用する場合は、MouseAdapterを拡張する独自のクラスを作成し、コンストラクターで呼び出すラベル、画像、およびアクションを実行して、非常に類似した匿名クラスが大量に発生しないようにする必要があります。

于 2012-05-18T08:42:37.593 に答える
0

私は過去にツールバーを使用して素晴らしい効果を達成しました。

これにより、通常のボタンのように動作するアイテムを含むツールバーが作成されます。

//Toolbar button
ToolBar toolBar = new ToolBar(composite,SWT.FLAT);
ToolItem toolItem = new ToolItem(toolBar,SWT.PUSH);
toolItem.setImage(image);

これは、トグル動作を持つアイテムを含むツールバーになります。

//Create a toggle effect
ToolBar toggleToolBar = new ToolBar(composite,SWT.FLAT);
ToolItem toggleToolItem = new ToolItem(toggleToolBar,SWT.CHECK);
toggleToolItem.setImage(image);
于 2012-05-18T13:33:59.973 に答える