1

(ポーカー ゲームの) ベット サイズを表示する JSlider があります。マウス クリックがバーの左側で発生した場合、固定量だけ減分する必要があります。それ以外の場合は増分します。マウスリスナーの取り付けを検討しましたが、イベントを使用してマウスがクリックされたバーの側を見つける方法がわかりません。

何か案は?

4

3 に答える 3

4

問題に対する見方を変えるだけです。

クリックを現在のベットの「左」または「右」(下または上) と見なさないでください。

むしろ、単に古いティックを保存し、新しいティックが何であるかを調べます。差は、ユーザーが増加 (正のデルタ) または減少 (負のデルタ) を試みたかどうかを示します。

次に、希望の「固定ベット」額を増やすことができます。

于 2010-03-08T16:38:08.357 に答える
2

これにはカスタム UI を作成する必要があると思います。これで始められるはずです:

import java.awt.*;
import javax.swing.*;
import javax.swing.plaf.basic.*;
import javax.swing.plaf.metal.*;

public class SliderScroll extends JFrame
{
    public SliderScroll()
    {
        final JSlider slider = new JSlider(0, 50, 20);
        slider.setMajorTickSpacing(10);
        slider.setMinorTickSpacing(5);
        slider.setExtent(5);
        slider.setPaintTicks(true);
        slider.setPaintLabels(true);
        getContentPane().add( slider );

        slider.setUI( new MySliderUI() );
    }

    class MySliderUI extends MetalSliderUI
    {
        public void scrollByUnit(int direction)
        {
            synchronized(slider)
            {
                int oldValue = slider.getValue();
                int delta = (direction > 0) ? 10 : -5;
                slider.setValue(oldValue + delta);
            }
        }
    }

    public static void main(String[] args)
    {
        JFrame frame = new SliderScroll();
        frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
        frame.pack();
        frame.setVisible( true );
     }
}
于 2010-03-08T16:34:50.803 に答える
1

これは私が MouseClickEvent を達成する方法です

 MoveSlider = new JSlider(JSlider.HORIZONTAL, 0, 0, 0);
 MoveSlider.addMouseListener(new MouseListener()
{
        public void mousePressed(MouseEvent event) {
            //Mouse Pressed Functionality add here
              }

        @Override
        public void mouseClicked(MouseEvent arg0) {
                // TODO Auto-generated method stub
            }
        @Override
        public void mouseEntered(MouseEvent arg0) {
            // TODO Auto-generated method stub
            }
        @Override
        public void mouseExited(MouseEvent arg0) {
            // TODO Auto-generated method stub
            }

        @Override
        public void mouseReleased(MouseEvent arg0) {
            // TODO Auto-generated method stub
});
于 2013-09-23T08:51:53.583 に答える