Frage

Ich habe einen JSLIDER, der die Wettengrößen (für ein Pokerspiel) zeigt, dass ich den Effekt erzielen möchte, dass der Schieberegler, wenn ein Mausklick auftritt, mit einer BET -Menge (dh einer großen blinden Menge) vorwärts springt, anstatt nur um eins zu inkrementieren. Wenn die Mausklick links neben dem Balken stattfindet, möchte ich, dass sie um einen festen Betrag abschließt. Ich habe mir einen Maushörer angeschlossen, weiß aber nicht, wie ich das Ereignis verwenden kann, um herauszufinden, auf welcher Seite der Stange die Maus geklickt wurde.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Sie müssen nur Ihre Perspektive auf das Problem ändern.

Zeigen Sie die Klicks nicht als 'links' oder 'rechts' (unten oder höher) an die aktuelle Wette an.

Vielmehr speichern Sie einfach die alte Zecke und schauen sich an, was die neue Zecke ist. Der Unterschied zeigt Ihnen, ob der Benutzer versucht hat, zu erhöhen (positives Delta) oder Abnahme (Negatives Delta).

Anschließend können Sie nach Ihrem gewünschten "festen Wetten" -Betrag erhöhen.

Andere Tipps

Ich denke, Sie müssen dafür eine benutzerdefinierte Benutzeroberfläche schreiben. Dies sollte Ihnen loslegen:

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 );
     }
}

So verwende ich das 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
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top