APL/DEV 3.1/TP3/Tableau/Tableau.java
2022-10-05 11:07:41 +02:00

104 lines
3.5 KiB
Java

import java.sql.*;
import javax.swing.*;
import java.awt.*;
public class Tableau {
private static void changeConstraints(GridBagConstraints g, int gx, int gy, int gw, int gh, int anchor, int fill, double wx, double wy, Insets i) {
g.gridx = gx;
g.gridy = gy;
g.gridwidth = gw;
g.gridheight = gh;
g.anchor = anchor;
g.fill = fill;
g.weightx = wx;
g.weighty = wy;
g.insets = i;
}
public static void main(String[] args) {
try {
Class.forName("org.mariadb.jdbc.Driver");
} catch (ClassNotFoundException ex) {
System.err.println("MariaDB driver not found");
return;
}
Connection cnx;
try {
cnx = DriverManager.getConnection("jdbc:mariadb://dwarves.iut-fbleau.fr/horville", "horville", "a5gc95");
} catch (SQLException ex) {
System.err.println("Unable to access Database.");
return;
}
JFrame f = new JFrame();
f.setLayout(new GridBagLayout());
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(150, 500);
GridBagConstraints g = new GridBagConstraints();
try {
PreparedStatement req = cnx.prepareStatement("SELECT Module.code, Champ.code FROM Champ JOIN Module ON Champ.id = Module.id ORDER BY Module.code ASC;");
req.executeUpdate();
ResultSet rs = req.executeQuery();
String lastMod = null;
int length = 0;
int count = 0;
while (rs.next()) {
String moduleName = rs.getString(1);
String fieldName = rs.getString(2);
if (!moduleName.equals(lastMod) && lastMod != null) {
JLabel modLabel = new JLabel(lastMod);
modLabel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
changeConstraints(g, 1, count - length, 1, length, GridBagConstraints.CENTER, GridBagConstraints.BOTH, 1f, 1f, new Insets(0, 0, 0, 0));
f.add(modLabel, g);
length = 0;
lastMod = moduleName;
} else {
lastMod = moduleName;
}
JLabel fieldLabel = new JLabel(fieldName);
fieldLabel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
changeConstraints(g, 2, count, 1, 1, GridBagConstraints.CENTER, GridBagConstraints.BOTH, 1f, 1f, new Insets(0, 0, 0, 0));
f.add(fieldLabel, g);
length++;
count++;
}
JLabel modLabel = new JLabel(lastMod);
modLabel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
g.gridx = 1;
g.gridy = count - length;
g.gridwidth = 1;
g.gridheight = length;
g.anchor = GridBagConstraints.CENTER;
g.fill = GridBagConstraints.BOTH;
g.weightx = 1f;
g.weighty = 1f;
g.insets = new Insets(0, 0, 0, 0);
f.add(modLabel, g);
rs.close();
req.close();
} catch (SQLException ex) {
System.err.println("SQL Request exception.");
System.err.println (ex);
}
f.setVisible(true);
try {
cnx.close();
} catch (SQLException ex) {
System.err.println("Unable to close connection.");
}
}
}