문제

나는 베팅 크기 (포커 게임의 경우)를 보여주는 jslider가 있습니다. 마우스 클릭이 발생할 때 슬라이더가 단순히 증가하는 것이 아니라 베팅 금액 (즉, 큰 눈이 큰 금액)으로 앞으로 점프한다는 효과를 얻으려고 노력하고 있습니다. 마우스 클릭이 막대의 왼쪽으로 클릭하면 고정 된 양수 증가한 증가를 원합니다. 마우스 리스너를 첨부하는 것을 살펴 보았지만 이벤트를 사용하여 마우스가 클릭 한 바의 어느 쪽을 찾을 수 있는지 모르겠습니다.

어떤 아이디어?

도움이 되었습니까?

해결책

문제에 대한 관점을 바꾸면됩니다.

클릭을 '왼쪽'또는 '오른쪽'(아래 또는 위)에있는 것으로 보지 마십시오.

오히려, 당신은 단순히 오래된 진드기를 저장하고 새로운 진드기가 무엇인지 살펴 봅니다. 차이는 사용자가 (양수 델타) 증가하려고했는지 또는 감소 (음성 델타)를 알려줍니다.

그런 다음 원하는 '고정 베팅'금액으로 증가 할 수 있습니다.

다른 팁

나는 당신이 이것을 위해 맞춤 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 );
     }
}

이것이 내가 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
});
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top