Add loading-gif.gif to generate JButton

This commit is contained in:
2021-03-23 16:55:14 +01:00
parent 852004a609
commit 0dd3552126
5 changed files with 16 additions and 3 deletions

View File

@@ -2,7 +2,6 @@ package lsystem.screen.gl3d;
import com.jogamp.opengl.GL2;
import com.jogamp.opengl.util.gl2.GLUT;
import lsystem.screen.gl2d.Point2;
import lsystem.screen.gl2d.SwingGLCanvas2D;

View File

@@ -5,6 +5,7 @@ import lsystem.engine.Parser;
import lsystem.screen.AbstractCanvas;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
@@ -18,6 +19,8 @@ public class Listener implements ActionListener, KeyListener {
String type;
Integer nbAxioms;
Thread parserThread = null;
ImageIcon staticIcon = new ImageIcon(Toolkit.getDefaultToolkit().createImage(getClass().getClassLoader().getResource("loading-gif.gif")));
public Listener(MainFrame frame, Integer index, String type, Tab tab){
this.tab = tab;
@@ -58,6 +61,8 @@ public class Listener implements ActionListener, KeyListener {
} else if (!parser.isCorrect()) {
openDialog("Vos règles ou votre axiome ne sont pas correctement écrites, veuillez recommencer");
} else {
tab.submitButton.setIcon(staticIcon);
tab.submitButton.setText("");
parserThread = new Thread(() -> {
try {
Main.joglFrame.setLSystem(axiom, parser.parseRules(), tab.getNbIterations());
@@ -66,6 +71,8 @@ public class Listener implements ActionListener, KeyListener {
Main.joglFrame.parsedState = AbstractCanvas.State.FINISH_OR_NULL;
openDialog("Une erreur de type " + err.getClass().getSimpleName() + " est survenue lors de l'execution du parser: " + err.getMessage());
}
tab.submitButton.setIcon(null);
tab.submitButton.setText("Générer");
});
parserThread.start();
}

View File

@@ -14,6 +14,7 @@ public class Tab extends JPanel{
JTextArea axiomList;
JTextArea rulesList;
JSpinner itSpinner;
JButton submitButton;
public Tab(int nbTabs,int nbRules,JTabbedPane tabs) {
this.nbRules = nbRules;
@@ -42,7 +43,7 @@ public class Tab extends JPanel{
rulesField.addKeyListener(new Listener(null,nbTabs+10,"Règles",this));
rulesField.setPreferredSize(new Dimension(120,20));
JButton submitButton = new JButton("Générer");
submitButton = new JButton("Générer");
JButton clearButton = new JButton("Clear");
clearButton.addActionListener(new Listener(null,nbTabs,"Clear",this));
submitButton.addActionListener(new Listener(null,nbTabs,"Generate",this));