Somehow fixed the problem with the timer activating too soon by changing the timer start to when it is in the "inner process" of the main method
This commit is contained in:
80
Java/ProjectModels/Visualizer/ScreenManager.java
Normal file
80
Java/ProjectModels/Visualizer/ScreenManager.java
Normal file
@@ -0,0 +1,80 @@
|
||||
package Visualizer;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.border.Border;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
public class ScreenManager extends JPanel {
|
||||
|
||||
|
||||
JPanel display = new JPanel(new BorderLayout());
|
||||
Screen[] screens = new Screen[2];
|
||||
|
||||
ScreenType currentScreen;
|
||||
|
||||
JButton toggle = new JButton("Cycle Screens");
|
||||
|
||||
|
||||
|
||||
public ScreenManager(Screen start, Screen data) {
|
||||
super(new BorderLayout());
|
||||
this.setVisible(true);
|
||||
screens[0] = start;
|
||||
screens[1] = data;
|
||||
|
||||
toggle.setVisible(true);
|
||||
toggle.addActionListener(e -> {
|
||||
if (currentScreen == ScreenType.START) {
|
||||
switchScreens(ScreenType.DATA);
|
||||
} else {
|
||||
switchScreens(ScreenType.DATA2);
|
||||
}
|
||||
|
||||
// if (currentScreen == ScreenType.DATA2) {
|
||||
// switchScreens(ScreenType.DATA);
|
||||
// }
|
||||
|
||||
});
|
||||
this.add(toggle, BorderLayout.WEST);
|
||||
currentScreen = ScreenType.START;
|
||||
display.add(screens[0]);
|
||||
this.add(display, BorderLayout.CENTER);
|
||||
display.setBackground(Color.black);
|
||||
}
|
||||
|
||||
public void switchScreens(ScreenType st) {
|
||||
display.removeAll();
|
||||
switch(st) {
|
||||
case START:
|
||||
System.out.println("Switch to start");
|
||||
display.add(screens[0],BorderLayout.CENTER);
|
||||
currentScreen = ScreenType.START;
|
||||
display.repaint();
|
||||
revalidate();
|
||||
break;
|
||||
case DATA:
|
||||
System.out.println("Switch to data");
|
||||
display.add(screens[1],BorderLayout.CENTER);
|
||||
currentScreen = ScreenType.DATA;
|
||||
display.repaint();
|
||||
revalidate();
|
||||
break;
|
||||
|
||||
case DATA2:
|
||||
System.out.println("Switch to data 2");
|
||||
display.add(((visualizer)screens[1]).exportDisplay(),BorderLayout.CENTER);
|
||||
currentScreen = ScreenType.DATA2;
|
||||
display.repaint();
|
||||
revalidate();
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user