1

簡単な Java の質問はこちら。ユーザーが最後にスライダーを移動した場所に正方形を描くカスタム JSlider を作成しました。paintcomponent をオーバーライドし、スライダーのサイズに応じて正方形を描画します。スライダーを適切に使用すると、すべてがうまく機能します。ただし、フレームのサイズを変更すると問題が発生します。スライダーが大きくなり、スライダー アジャスターもそれに合わせて移動しますが、配置した正方形はスライダーに対して移動しません。フレームのサイズを変更するときに再描画するには、JSlider からどの関数を使用する必要がありますか?

私は JSlider コードをフレーム コードから分離しようとしているので、ユーザーがカスタム JSlider を使用できるようにし、このサイズ変更機能を自分で処理しようとしないようにしたいと考えています。これにどの方法を使用すべきかについて何か助けはありますか?

ありがとう。

4

1 に答える 1

1

ComponentListenerをスライダーに追加して、スライダーを再描画できますcomponentResized

slider.addComponentListener(new ComponentAdapter() {
    @Override
    public void componentResized(ComponentEvent e) {
        e.getComponent().repaint();
    }
}
于 2012-11-11T17:52:47.037 に答える