Compare commits

..

11 Commits

Author SHA1 Message Date
Rémi Heredero
de4afed4ba
Delete Savings.class 2022-05-19 13:28:06 +02:00
Rémi Heredero
968324cfc2
Delete Checking.class 2022-05-19 13:27:58 +02:00
Rémi Heredero
ffef137a6b
Delete BankController.class 2022-05-19 13:27:50 +02:00
Rémi Heredero
0d3aa4e536
Delete BankAccount.class 2022-05-19 13:27:41 +02:00
Rémi Heredero
f9dccd7a7f
Delete Listener.class 2022-05-19 13:27:30 +02:00
Rémi Heredero
8a2c15f5bb
Delete GUI2.class 2022-05-19 13:27:22 +02:00
Rémi Heredero
c9487e2ef8
Delete GUI1.class 2022-05-19 13:27:15 +02:00
Rémi Heredero
bb6c7cf4c5
Delete ButtonListener.class 2022-05-19 13:27:08 +02:00
c541e43d35 it should work 2022-05-19 13:24:33 +02:00
68b4873cfe it should work 2022-05-19 13:23:36 +02:00
2e15fc5835 partial debug 2022-05-19 13:04:14 +02:00
26 changed files with 60 additions and 97 deletions

38
.vscode/launch.json vendored
View File

@ -1,35 +1,5 @@
{ {
"configurations": [ "configurations": [
{
"type": "java",
"name": "Launch CompleteBankController",
"request": "launch",
"mainClass": "bank.CompleteBankController",
"projectName": "Lab15_OOP_90898795",
"vmArgs": "-enableassertions"
},
{
"type": "java",
"name": "Launch BankController",
"request": "launch",
"mainClass": "bank.CompleteBankController",
"projectName": "Lab15_OOP_fc166bd2",
"vmArgs": "-enableassertions"
},
{
"type": "java",
"name": "Launch GUI2",
"request": "launch",
"mainClass": "GUI.GUI2",
"projectName": "Lab15_OOP_79fdc875"
},
{
"type": "java",
"name": "Launch GUI1",
"request": "launch",
"mainClass": "GUI.GUI1",
"projectName": "Lab15_OOP_79fdc875"
},
{ {
"type": "java", "type": "java",
"name": "Launch HesSoGarage", "name": "Launch HesSoGarage",
@ -65,6 +35,14 @@
"mainClass": "GUI.GUI1", "mainClass": "GUI.GUI1",
"projectName": "Lab15_OOP_90898795", "projectName": "Lab15_OOP_90898795",
"liveshare.allowGuestDebugControl": true "liveshare.allowGuestDebugControl": true
},
{
"type": "java",
"name": "Launch BankController",
"request": "launch",
"mainClass": "bank.BankController",
"projectName": "Lab15_OOP_90898795",
"vmArgs": "-enableassertions"
} }
] ]
} }

View File

@ -7,7 +7,6 @@
"liveshare.shareExternalFiles": false, "liveshare.shareExternalFiles": false,
"liveshare.allowGuestDebugControl": true, "liveshare.allowGuestDebugControl": true,
"cSpell.words": [ "cSpell.words": [
"Jframe",
"Jlogo", "Jlogo",
"Jname" "Jname"
] ]

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -6,17 +6,10 @@ import javax.swing.*;
import java.awt.print.*; import java.awt.print.*;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
/**
* generate the bill in a window
*/
public class BillGui extends JFrame{ public class BillGui extends JFrame{
String bill; String bill;
JPanel jP; JPanel jP;
/**
* initialize the bill in a window
* @param bill string who contains the bill
*/
BillGui(String bill){ BillGui(String bill){
this.bill = bill; this.bill = bill;
@ -27,26 +20,23 @@ public class BillGui extends JFrame{
FlowLayout fl = new FlowLayout(); FlowLayout fl = new FlowLayout();
this.setLayout(fl); this.setLayout(fl);
//Create the label who contain the label with the bill
jP = new JPanel(); jP = new JPanel();
JLabel jBill = new JLabel(bill); JLabel jBill = new JLabel(bill);
jP.add(jBill); jP.add(jBill);
this.add(jP); this.add(jP);
//Create the button for print the bill
JButton buttonPrint = new JButton("Print"); JButton buttonPrint = new JButton("Print");
buttonPrint.addActionListener(new ButtonListenerBill() { buttonPrint.addActionListener(
new ButtonListenerBill(this) {
@Override @Override
public void actionPerformed(ActionEvent e){ public void actionPerformed(ActionEvent e){
// Create a new printer Job
PrinterJob pj = PrinterJob.getPrinterJob(); PrinterJob pj = PrinterJob.getPrinterJob();
pj.setJobName("Bill"); pj.setJobName("Bill");
// Create a printable element from a JPanel. This method is just a copy, it resize but isn't perfect.
// It's just a first test. Should be improved
// TODO : improve this method
Printable printable = new Printable() { Printable printable = new Printable() {
public int print(Graphics pg, PageFormat pf, int pageNum){ public int print(Graphics pg, PageFormat pf, int pageNum){
if (pageNum > 0) return Printable.NO_SUCH_PAGE; if (pageNum > 0) return Printable.NO_SUCH_PAGE;
@ -64,39 +54,40 @@ public class BillGui extends JFrame{
} }
}; };
// Create and set a A4 paper
Paper paper = new Paper(); Paper paper = new Paper();
paper.setImageableArea(0, 0,2480,3508); paper.setImageableArea(0, 0,2480,3508);
paper.setSize(2480,3508); paper.setSize(2480,3508);
PageFormat format = new PageFormat(); PageFormat format = new PageFormat();
format.setPaper(paper); format.setPaper(paper);
format.setOrientation(PageFormat.PORTRAIT); format.setOrientation(PageFormat.PORTRAIT);
// Set all settings about the printing function
pj.setPrintable (printable, format); pj.setPrintable (printable, format);
// Launch the printer dialog for printing.
if (pj.printDialog() == false) return; if (pj.printDialog() == false) return;
try { try {
pj.print(); pj.print();
} catch (PrinterException ex) {} } catch (PrinterException ex) {}
} }
}); });
this.add(buttonPrint); this.add(buttonPrint);
} }
} }
/** /**
* listener to detect the button to print the bill *
*/ */
class ButtonListenerBill implements ActionListener { class ButtonListenerBill implements ActionListener {
JFrame Jf;
ButtonListenerBill(JFrame Jf){
this.Jf = Jf;
}
@Override @Override
public void actionPerformed(ActionEvent e){}; public void actionPerformed(ActionEvent e){ };
} }

View File

@ -2,12 +2,10 @@ package BillGUI;
public class HesSoGarage { public class HesSoGarage {
public static void main(String[] args) { public static void main(String[] args) {
//Create a new garage
GarageManager garageManager = new GarageManager(); GarageManager garageManager = new GarageManager();
String name = "<html><body><i>Garage manager</i><br>Prestations</body></html>"; String name = "<html><body><i>Garage manager</i><br>Prestations</body></html>";
String logoFilePath = "src/logo_garage.png"; String logoFilePath = "src/logo_garage.png"; //TODO redimensionnement automatique
//Create a new HMI for calculate and print the bill new ManagerGui(name, logoFilePath, garageManager.getServices(), garageManager); //TODO affichage sans redimensionnement
new ManagerGui(name, logoFilePath, garageManager.getServices(), garageManager);
} }
} }

View File

@ -6,7 +6,7 @@ import java.util.Vector;
import javax.swing.*; import javax.swing.*;
/** /**
* HMI for calculate the bill *
*/ */
public class ManagerGui extends JFrame { public class ManagerGui extends JFrame {
GridLayout grid; GridLayout grid;
@ -15,7 +15,7 @@ public class ManagerGui extends JFrame {
ImageIcon logo; ImageIcon logo;
String buttonNameQuit = "Quit"; String buttonNameQuit = "Quit";
String buttonNameBill = "Show bill"; String buttonNameBill = "Show bill";
double ratio = 207.0 / 163.0; double ratio = 207.0/163.0;
Vector<Row> prestations = new Vector<>(); Vector<Row> prestations = new Vector<>();
@ -23,17 +23,13 @@ public class ManagerGui extends JFrame {
/** /**
* initialize the window *
* @param name name of the garage
* @param logoFilePath file of the garage's logo
* @param prestationsName array with the name of the prestations
* @param garageManager a new garage application
*/ */
public ManagerGui(String name, String logoFilePath, String[] prestationsName, GarageManager garageManager){ public ManagerGui(String name, String logoFilePath, String[] prestationsName, GarageManager garageManager){
//set up the window with the layout
this.setSize(400,600); this.setSize(400,600);
this.setLocation(600,200); this.setLocation(600,200);
this.setVisible(true); this.setVisible(true);
grid = new GridLayout(prestationsName.length + 2,2); grid = new GridLayout(prestationsName.length + 2,2);
this.setLayout(grid); this.setLayout(grid);
@ -48,6 +44,7 @@ public class ManagerGui extends JFrame {
Jlogo = resize(Jname, logoFilePath); Jlogo = resize(Jname, logoFilePath);
this.add(Jlogo); this.add(Jlogo);
//Create rows for prestations //Create rows for prestations
for(String s : prestationsName){ for(String s : prestationsName){
prestations.add(new Row(s)); prestations.add(new Row(s));
@ -62,7 +59,7 @@ public class ManagerGui extends JFrame {
JButton buttonBill = new JButton(buttonNameBill); JButton buttonBill = new JButton(buttonNameBill);
buttonBill.addActionListener(new ButtonListenerManager(valuePrestations, prestations, garageManager){ buttonBill.addActionListener(new ButtonListenerManager(valuePrestations, prestations, garageManager){
/** /**
* add the number of prestations when it is used *
*/ */
@Override @Override
public void actionPerformed(ActionEvent e){ public void actionPerformed(ActionEvent e){
@ -74,7 +71,7 @@ public class ManagerGui extends JFrame {
} }
System.out.println(value); System.out.println(value);
} }
//Create the bill
new BillGui(garageManager.generateHTMLBill(valuePrestations)); new BillGui(garageManager.generateHTMLBill(valuePrestations));
}; };
}); });
@ -82,7 +79,7 @@ public class ManagerGui extends JFrame {
JButton buttonQuit = new JButton(buttonNameQuit); JButton buttonQuit = new JButton(buttonNameQuit);
buttonQuit.addActionListener(new ButtonListenerManager(this){ buttonQuit.addActionListener(new ButtonListenerManager(this){
/** /**
* quit the window *
*/ */
@Override @Override
public void actionPerformed(ActionEvent e){ public void actionPerformed(ActionEvent e){
@ -93,11 +90,10 @@ public class ManagerGui extends JFrame {
this.add(buttonBill); this.add(buttonBill);
this.add(buttonQuit); this.add(buttonQuit);
this.setVisible(true);
} }
private JLabel resize(JLabel Jlogo, String logoFilePath){ private JLabel resize(JLabel Jlogo, String logoFilePath){
//TODO put in listener for resize when frame is resized. //TODO put in listener for resize when frame is resize.
int width = (int)Jlogo.getSize().getWidth(); int width = (int)Jlogo.getSize().getWidth();
int height = (int)Jlogo.getSize().getHeight(); int height = (int)Jlogo.getSize().getHeight();
height = height > 0 ? height:65; height = height > 0 ? height:65;
@ -109,11 +105,12 @@ public class ManagerGui extends JFrame {
/** /**
* Create a row in the windows with a label and a spinner *
*/ */
class Row { class Row {
JLabel label; JLabel label;
JSpinner spinner; JSpinner spinner;
Row(String title){ Row(String title){
label = new JLabel(title); label = new JLabel(title);
spinner = new JSpinner(); spinner = new JSpinner();
@ -121,7 +118,7 @@ class Row {
} }
/** /**
* listener for detect the button *
*/ */
class ButtonListenerManager implements ActionListener { class ButtonListenerManager implements ActionListener {
JFrame Jf; JFrame Jf;

View File

@ -1,4 +1,5 @@
package GUI; package GUI;
//TODO mettre commentaire
import javax.swing.*; import javax.swing.*;
@ -7,43 +8,36 @@ import java.awt.FlowLayout;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
/**
* main class for create the window
*/
public class GUI1 extends JFrame { public class GUI1 extends JFrame {
public static void main(String[] args) { public static void main(String[] args) {
new GUI1(); new GUI1();
} }
GUI1(){ GUI1(){
//set up the window
setTitle("Me"); setTitle("Me");
setSize(200,200); setSize(200,200);
setLocation(600,200); setLocation(600,200);
this.getContentPane().setBackground(Color.GREEN);
//set the layout for the window
FlowLayout fl = new FlowLayout(); FlowLayout fl = new FlowLayout();
this.setLayout(fl); this.setLayout(fl);
//create and add component on the window this.getContentPane().setBackground(Color.GREEN);
JButton jb1 = new JButton("Foo"); JButton jb1 = new JButton("Foo");
JButton jb2 = new JButton("bar"); JButton jb2 = new JButton("bar");
ButtonListener bl = new ButtonListener(this); ButtonListener bl = new ButtonListener(this);
jb1.addActionListener(bl); jb1.addActionListener(bl);
jb2.addActionListener(bl); jb2.addActionListener(bl);
this.add(jb1); this.add(jb1);
this.add(jb2); this.add(jb2);
this.setVisible(true); this.setVisible(true);
} }
} }
/**
* set up the class for detect button
*/
class ButtonListener implements ActionListener{ class ButtonListener implements ActionListener{
JFrame f1; JFrame f1;

View File

@ -1,4 +1,5 @@
package GUI; package GUI;
//TODO mettre commentaire
import javax.swing.*; import javax.swing.*;
import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeEvent;
@ -6,53 +7,57 @@ import javax.swing.event.ChangeListener;
import java.awt.Container; import java.awt.Container;
/** /**
* main class for create the window *
*/ */
public class GUI2 extends JFrame{ public class GUI2 extends JFrame{
int number; int number;
public static void main(String[] args) { public static void main(String[] args) {
new GUI2(); new GUI2();
} }
/**
*
*/
GUI2(){ GUI2(){
//set up the window with the layout
setSize(200,200); setSize(200,200);
setLocation(600,200); setLocation(600,200);
Container c = this.getContentPane(); Container c = this.getContentPane();
BoxLayout fl = new BoxLayout(c, BoxLayout.Y_AXIS); BoxLayout fl = new BoxLayout(c, BoxLayout.Y_AXIS);
c.setLayout(fl); c.setLayout(fl);
//create component on the window
JSlider js1 = new JSlider(0, 100); JSlider js1 = new JSlider(0, 100);
js1.setValue(0); js1.setValue(0);
JProgressBar jp1 = new JProgressBar(0, 100); JProgressBar jp1 = new JProgressBar(0, 100);
JLabel jl1 = new JLabel("waiting"); JLabel jl1 = new JLabel("waiting");
//create the listener for the slider
Listener l = new Listener(jp1, jl1, js1); Listener l = new Listener(jp1, jl1, js1);
js1.addChangeListener(l); js1.addChangeListener(l);
//addd component on the window
c.add(js1); c.add(js1);
c.add(jp1); c.add(jp1);
c.add(jl1); c.add(jl1);
this.setVisible(true); this.setVisible(true);
} }
} }
/** /**
* class for detect slider mouvement *
*/ */
class Listener implements ChangeListener { class Listener implements ChangeListener {
JProgressBar jp1; JProgressBar jp1;
JLabel jl1; JLabel jl1;
JSlider js1; JSlider js1;
int number = 0; int number = 0;
/** /**
* initialize the instance with parameters *
* @param jp1 progress bar who display the number of the slider * @param jp1
* @param jl1 label progress bar who display the number of the slider * @param jl1
* @param js1 slider who modify the label and the progress bar * @param js1
*/ */
Listener(JProgressBar jp1, JLabel jl1, JSlider js1){ Listener(JProgressBar jp1, JLabel jl1, JSlider js1){
this.jp1 = jp1; this.jp1 = jp1;
@ -61,7 +66,8 @@ class Listener implements ChangeListener {
} }
/** /**
* modify the value of the label and the progress bar with the slider *
* @param e
*/ */
@Override @Override
public void stateChanged(ChangeEvent e) { public void stateChanged(ChangeEvent e) {