105 lines
3.5 KiB
Java
105 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.");
|
|
}
|
|
}
|
|
}
|