Java Swingにおけるパネルスライダーの実装方法


方法1: JSliderを使用したパネルスライダーの実装 JSliderクラスを使用してパネルスライダーを作成する方法です。以下は、基本的な例です。

import javax.swing.*;
import java.awt.*;
public class PanelSliderExample extends JFrame {
    private JPanel panel1;
    private JPanel panel2;
    public PanelSliderExample() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400, 400);
        setLayout(new BorderLayout());
        panel1 = new JPanel();
        panel1.setBackground(Color.RED);
        panel2 = new JPanel();
        panel2.setBackground(Color.GREEN);
        JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 100, 0);
        slider.addChangeListener(e -> {
            int value = slider.getValue();
            int panelWidth = panel1.getWidth();
            int newX = (int) ((panelWidth - getWidth()) * value / 100.0);
            panel1.setLocation(-newX, 0);
        });
        add(slider, BorderLayout.SOUTH);
        add(panel1, BorderLayout.CENTER);
        add(panel2, BorderLayout.NORTH);
    }
    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            PanelSliderExample example = new PanelSliderExample();
            example.setVisible(true);
        });
    }
}

この例では、JSliderを使用してパネルスライダーを作成しています。スライダーの値が変更されると、パネル1の位置がスライダーの値に応じて変更されます。

方法2: Timerを使用したパネルスライダーの実装 Timerクラスを使用してパネルスライダーを作成する方法もあります。以下は、例です。

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class PanelSliderExample extends JFrame {
    private JPanel panel1;
    private JPanel panel2;
    private Timer timer;
    private int slideSpeed = 5;
    public PanelSliderExample() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400, 400);
        setLayout(new BorderLayout());
        panel1 = new JPanel();
        panel1.setBackground(Color.RED);
        panel2 = new JPanel();
        panel2.setBackground(Color.GREEN);
        timer = new Timer(10, new ActionListener() {
            int panelX = 0;
            @Override
            public void actionPerformed(ActionEvent e) {
                panelX -= slideSpeed;
                if (panelX <= -getWidth()) {
                    panelX = 0;
                }
                panel1.setLocation(panelX, 0);
            }
        });
        timer.start();
        add(panel1, BorderLayout.CENTER);
        add(panel2, BorderLayout.NORTH);
    }
    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            PanelSliderExample example = new PanelSliderExample();
            example.setVisible(true);
        });
    }
}

この例では、Timerを使用してパネルスライダーを作成しています。タイマーのイベントが発生するたびに、パネル1の位置がスライドし、スライドが一定の速度で繰り返されます。

これらは、Java Swingでパネルスライダーを実装するための基本的な方法の一部です。他にもさまざまな方法がありますが、上記の例は初心者にとって理解しやすいものです。必要に応じて、これらの例をカスタマイズして機能を追加することができます。