Upload files to "/"
This commit is contained in:
57
CreditsPanel.java
Normal file
57
CreditsPanel.java
Normal file
@@ -0,0 +1,57 @@
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
||||
public class CreditsPanel extends JPanel {
|
||||
private JList<String> creditsList;
|
||||
private JScrollPane scrollPane;
|
||||
private Timer timer;
|
||||
private int scrollPos = 0;
|
||||
|
||||
public CreditsPanel(String[] data, Runnable onComplete) {
|
||||
setLayout(new BorderLayout());
|
||||
setBackground(Color.BLACK);
|
||||
|
||||
//JList
|
||||
creditsList = new JList<>(data);
|
||||
creditsList.setBackground(Color.BLACK);
|
||||
creditsList.setForeground(Color.WHITE);
|
||||
creditsList.setFont(new Font("SansSerif", Font.BOLD, 20));
|
||||
creditsList.setFixedCellHeight(40); // Consistent spacing
|
||||
|
||||
DefaultListCellRenderer renderer = (DefaultListCellRenderer) creditsList.getCellRenderer();
|
||||
renderer.setHorizontalAlignment(SwingConstants.CENTER);
|
||||
|
||||
//ScrollPane
|
||||
scrollPane = new JScrollPane(creditsList);
|
||||
scrollPane.setBorder(null);
|
||||
scrollPane.getVerticalScrollBar().setPreferredSize(new Dimension(0, 0)); // Hidden bar
|
||||
add(scrollPane, BorderLayout.CENTER);
|
||||
|
||||
//Animation
|
||||
timer = new Timer(30, e -> {
|
||||
JScrollBar vertical = scrollPane.getVerticalScrollBar();
|
||||
scrollPos++;
|
||||
vertical.setValue(scrollPos);
|
||||
|
||||
// Add a buffer (e.g., 100 pixels) to the finish check
|
||||
// to keep it on screen longer
|
||||
if (scrollPos >= (vertical.getMaximum() - vertical.getVisibleAmount()) + 100) {
|
||||
timer.stop();
|
||||
onComplete.run();
|
||||
}
|
||||
});
|
||||
|
||||
// Skip Button
|
||||
JButton skip = new JButton("SKIP");
|
||||
skip.addActionListener(e -> {
|
||||
timer.stop();
|
||||
onComplete.run();
|
||||
});
|
||||
add(skip, BorderLayout.SOUTH);
|
||||
}
|
||||
|
||||
public void start() {
|
||||
scrollPos = 0;
|
||||
timer.start();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user