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