Compare commits
9 Commits
debug-logo
...
master
Author | SHA1 | Date | |
---|---|---|---|
2f45a5a342 | |||
|
9d4c6ecc7d | ||
|
3a01bb88d4 | ||
|
354ea04dff | ||
|
91320444a5 | ||
|
e245dcba52 | ||
|
21070c07be | ||
|
095fa60a3d | ||
|
5fb795df73 |
38
.vscode/launch.json
vendored
38
.vscode/launch.json
vendored
@ -1,5 +1,35 @@
|
|||||||
{
|
{
|
||||||
"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",
|
||||||
@ -35,14 +65,6 @@
|
|||||||
"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"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
7
.vscode/settings.json
vendored
7
.vscode/settings.json
vendored
@ -5,5 +5,10 @@
|
|||||||
"lib/**/*.jar"
|
"lib/**/*.jar"
|
||||||
],
|
],
|
||||||
"liveshare.shareExternalFiles": false,
|
"liveshare.shareExternalFiles": false,
|
||||||
"liveshare.allowGuestDebugControl": true
|
"liveshare.allowGuestDebugControl": true,
|
||||||
|
"cSpell.words": [
|
||||||
|
"Jframe",
|
||||||
|
"Jlogo",
|
||||||
|
"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.
@ -6,10 +6,17 @@ 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;
|
||||||
|
|
||||||
@ -20,23 +27,26 @@ 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(
|
buttonPrint.addActionListener(new ButtonListenerBill() {
|
||||||
|
|
||||||
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;
|
||||||
@ -54,40 +64,39 @@ 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){};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,10 +2,12 @@ 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"; //TODO redimensionnement automatique
|
String logoFilePath = "src/logo_garage.png";
|
||||||
new ManagerGui(name, logoFilePath, garageManager.getServices(), garageManager); //TODO affichage sans redimensionnement
|
//Create a new HMI for calculate and print the bill
|
||||||
|
new ManagerGui(name, logoFilePath, garageManager.getServices(), garageManager);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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,6 +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;
|
||||||
|
|
||||||
|
|
||||||
Vector<Row> prestations = new Vector<>();
|
Vector<Row> prestations = new Vector<>();
|
||||||
@ -22,13 +23,17 @@ 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);
|
||||||
|
|
||||||
@ -37,9 +42,12 @@ public class ManagerGui extends JFrame {
|
|||||||
Jlogo = new JLabel(logo);
|
Jlogo = new JLabel(logo);
|
||||||
Jname = new JLabel(name);
|
Jname = new JLabel(name);
|
||||||
this.add(Jname);
|
this.add(Jname);
|
||||||
|
|
||||||
|
//logo = new ImageIcon(new ImageIcon(logoFilePath).getImage().getScaledInstance(207, 163, Image.SCALE_DEFAULT));
|
||||||
|
//Jlogo = new JLabel(logo);
|
||||||
|
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));
|
||||||
@ -54,7 +62,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){
|
||||||
@ -66,7 +74,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));
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
@ -74,7 +82,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){
|
||||||
@ -85,17 +93,27 @@ 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){
|
||||||
|
//TODO put in listener for resize when frame is resized.
|
||||||
|
int width = (int)Jlogo.getSize().getWidth();
|
||||||
|
int height = (int)Jlogo.getSize().getHeight();
|
||||||
|
height = height > 0 ? height:65;
|
||||||
|
System.out.println(width + "x"+ height);
|
||||||
|
ImageIcon logo = new ImageIcon(new ImageIcon(logoFilePath).getImage().getScaledInstance((int) (height*ratio), height, Image.SCALE_DEFAULT));
|
||||||
|
return new JLabel(logo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* 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();
|
||||||
@ -103,7 +121,7 @@ class Row {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* listener for detect the button
|
||||||
*/
|
*/
|
||||||
class ButtonListenerManager implements ActionListener {
|
class ButtonListenerManager implements ActionListener {
|
||||||
JFrame Jf;
|
JFrame Jf;
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
package GUI;
|
package GUI;
|
||||||
//TODO mettre commentaire
|
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
|
|
||||||
@ -8,36 +7,43 @@ 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);
|
||||||
|
|
||||||
this.getContentPane().setBackground(Color.GREEN);
|
//create and add component on the window
|
||||||
|
|
||||||
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;
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
package GUI;
|
package GUI;
|
||||||
//TODO mettre commentaire
|
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import javax.swing.event.ChangeEvent;
|
import javax.swing.event.ChangeEvent;
|
||||||
@ -7,57 +6,53 @@ 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
|
* @param jp1 progress bar who display the number of the slider
|
||||||
* @param jl1
|
* @param jl1 label progress bar who display the number of the slider
|
||||||
* @param js1
|
* @param js1 slider who modify the label and the progress bar
|
||||||
*/
|
*/
|
||||||
Listener(JProgressBar jp1, JLabel jl1, JSlider js1){
|
Listener(JProgressBar jp1, JLabel jl1, JSlider js1){
|
||||||
this.jp1 = jp1;
|
this.jp1 = jp1;
|
||||||
@ -66,8 +61,7 @@ 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) {
|
||||||
|
Reference in New Issue
Block a user