This repository was archived by the owner on Apr 28, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 55
Expand file tree
/
Copy pathGuiModLoaderProgress.java
More file actions
79 lines (68 loc) · 2.71 KB
/
GuiModLoaderProgress.java
File metadata and controls
79 lines (68 loc) · 2.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package org.dimdev.riftloader.swing;
import javax.swing.*;
import java.awt.*;
public class GuiModLoaderProgress {
private JLabel progressMessage = new JLabel("Initialising...");
private JFrame mainFrame;
private JProgressBar progressBar;
private int x;
private int y;
public GuiModLoaderProgress(int x, int y) {
this.x = x;
this.y = y;
JFrame frame = new JFrame("Rift Mod Loader");
frame.setLayout(null);
frame.setAutoRequestFocus(true);
frame.resize(this.x, this.y);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
//
JLabel label = new JLabel("Rift Mod Loader is preparing your Minecraft environment...");
label.setFont(new Font(label.getFont().getName(), Font.BOLD, 18));
setPosition(frame, label, (this.x / 2) - getCenteredStringWidth(label), 40);
//
progressMessage.setFont(new Font(label.getFont().getName(), Font.PLAIN, 14));
setPosition(frame, progressMessage, (this.x / 2 - getCenteredStringWidth(progressMessage)), this.y/2);
frame.add(label);
frame.add(progressMessage);
//
progressBar = new JProgressBar();
progressBar.setPreferredSize(new Dimension(this.x - 50, 25));
progressBar.setIndeterminate(true);
setPosition(frame, progressBar, (this.x / 2) - ((this.x - 50) / 2), this.y - 50);
frame.add(progressBar);
mainFrame = frame;
frame.setVisible(true);
}
private void setPosition(JFrame pane, JComponent component, int x, int y) {
Insets insets = pane.getInsets();
Dimension size = component.getPreferredSize();
component.setBounds(new Rectangle(x + insets.left, y + insets.top, size.width, size.height));
//return new Rectangle(x + insets.left, y + insets.top, size.width, size.height);
}
private int getCenteredStringWidth(JLabel label) {
FontMetrics fm = label.getFontMetrics(label.getFont());
return fm.stringWidth(label.getText()) / 2;
}
public void updateProgressText(String info) {
progressMessage.setText(info);
setPosition(mainFrame, progressMessage, (this.x / 2 - getCenteredStringWidth(progressMessage)), this.y/2);
}
public void close(long wait) {
try {
Thread.sleep(wait);
} catch (InterruptedException e) {
e.printStackTrace();
}
mainFrame.setVisible(false);
}
public void setProgress(int done, int total) {
if (done == -1) {
progressBar.setIndeterminate(true);
return;
}
progressBar.setIndeterminate(false);
progressBar.setMaximum(total);
progressBar.setValue(done);
}
}