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
| import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class GPSPanel extends JPanel {
Color color;
Image image = null;
public boolean toggle = false;
public GPSPanel() {
this(Color.black);
}
public GPSPanel(Color color) {
this.color = color;
}
public void paintComponent(Graphics g) {
super.paintComponent(g) ;
int width = getWidth();
int height = getHeight();
g.setColor(color);
g.fillRect(0, 0, width-1, height-1);
// ******** Affiche l'image de la Carte GPS ********** //
image = getToolkit().getImage("paris.jpg");
Graphics2D g2d = (Graphics2D) g;
g2d.translate(this.getWidth() / 2, this.getHeight() / 2); //Permet de centrer la carte
g2d.translate(-image.getWidth(null) / 2, -image.getHeight(null) / 2); //Permet de centrer la carte
if(image != null) // Si l'image existe, ...
g2d.drawImage(image, 0, 0, this);
// ******** Tracé de la trajectoire sur la Carte GPS ********** //
BasicStroke bs1 = new BasicStroke(3);
g2d.setStroke(bs1);
if(toggle == true){
g.setColor(Color.WHITE);
g.drawLine(50, 50, 100, 100);
}
}
public static void main(String args[]) {
JFrame frame = new JFrame("Jacquard Positioning System");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new GridLayout(1, 2)); //Defini l'agencement des blocs. (ligne, colonnes)
Color colors[] = { Color.BLACK, Color.RED, Color.BLUE};
//******************** Carte GPS *************************//
final GPSPanel panel = new GPSPanel(colors[0]);
frame.add(panel);
//******************** Selection trajectoire *************************//
JPanel panel2 = new JPanel();
JToggleButton trace = new JToggleButton("Activer le tracé");
trace.addActionListener(
// on crée une classe anonyme implémentant ActionListener
new ActionListener() {
public void actionPerformed(ActionEvent e) {
// Ici, on active le tracé de la trajectoire
panel.toggle=((panel.toggle==true)?false:true);
panel.repaint();
}
}
);
panel2.add(trace);
frame.add(panel2);
frame.setSize(1245, 650);
frame.setVisible(true);
}
} |
Partager