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