Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.Color;
- import java.awt.GridBagConstraints;
- import java.awt.GridBagLayout;
- import java.awt.GridLayout;
- import java.awt.Insets;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.Statement;
- import javax.swing.BorderFactory;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import javax.swing.JScrollPane;
- import javax.swing.JTabbedPane;
- import javax.swing.JTextArea;
- import javax.swing.JTextField;
- import javax.swing.border.Border;
- public class UIPartage extends JFrame implements ActionListener{
- public static final int WIDTH = 1024;
- public static final int HEIGHT = 768;
- private JTabbedPane tab;
- private JTextArea sqlstmtTArea;
- private JTextArea sqlres1TArea;
- private JTextArea sqlresTArea;
- private ResultSet res = null;
- private Connection c = null;
- private Statement stmt1 = null;
- private JTextField distTextField;
- private JTextField nomTextField;
- private String[] str_req= {"select an.titre, an.text, o.prix, annonceur.nom as annonceur, chercheur.nom as chercheur \r\n" +
- "from notifications n\r\n" +
- "inner join objets o on o.categorie = n.categorie and o.marque like '%' || n.marque || '%' and o.prix between n.prix_minimum and n.prix_maximum\r\n" +
- "inner join annonces an on an.num_objet = o.num_objet \r\n" +
- "inner join utilisateurs chercheur on chercheur.num_utilisateur = n.num_utilisateur\r\n" +
- "inner join utilisateurs annonceur on annonceur.num_utilisateur = an.num_utilisateur\r\n" +
- "where distance(an.coordonees, chercheur.coordonees) <= ",
- "select o.nom as objet, emp.nom as emprunteur, e.debut, e.fin\r\n" +
- "from emprunts e\r\n" +
- "inner join utilisateurs emp on emp.num_utilisateur = e.num_emprunteur\r\n" +
- "inner join objets o on o.num_objet = e.num_objet\r\n" +
- "inner join annonces an on an.num_objet = o.num_objet\r\n" +
- "inner join utilisateurs pre on pre.num_utilisateur = an.num_utilisateur\r\n" +
- "where pre.nom = "};
- public static void main( String args[] ) {
- UIPartage gui = new UIPartage();
- gui.setLocationRelativeTo(null);
- gui.setVisible(true);
- }
- public UIPartage() {
- super( );
- setSize(WIDTH, HEIGHT);
- setTitle("Gestion d��un syst��me de partage d��objets");
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- tab = new JTabbedPane(JTabbedPane.TOP);
- GridBagLayout layout = new GridBagLayout();
- JPanel jPanelGUI = new JPanel();
- jPanelGUI.setLayout(layout);
- JLabel req01Label = new JLabel("Chercheur voulant ��tre notifi�� �� une distance maximum de (m��tres)");
- jPanelGUI.add(req01Label);
- distTextField = new JTextField();
- jPanelGUI.add(distTextField);
- JButton req01Button = new JButton("CONFIRMER");
- req01Button.setActionCommand("req01btn");
- req01Button.addActionListener(this);
- jPanelGUI.add(req01Button);
- ///////
- JLabel req02Label = new JLabel("Historique d'objets emprunt��s d'un utilisateur (nom)");
- jPanelGUI.add(req02Label);
- nomTextField = new JTextField();
- jPanelGUI.add(nomTextField);
- JButton req02Button = new JButton("CONFIRMER");
- req02Button.setActionCommand("req02btn");
- req02Button.addActionListener(this);
- jPanelGUI.add(req02Button);
- JPanel padPanel = new JPanel();
- jPanelGUI.add(padPanel);
- JButton clearButton = new JButton("EFFACER");
- clearButton.setActionCommand("clearbtn");
- clearButton.addActionListener(this);
- jPanelGUI.add(clearButton);
- sqlres1TArea = new JTextArea(3,30);
- sqlres1TArea.setLineWrap(false);
- JScrollPane scr_sqlres1TArea = new JScrollPane(sqlres1TArea,
- JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
- JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
- jPanelGUI.add(scr_sqlres1TArea);
- GridBagConstraints s= new GridBagConstraints();
- s.fill = GridBagConstraints.BOTH;
- s.gridwidth=1;
- s.weightx = 0;
- s.weighty=0;
- layout.setConstraints(req01Label, s);
- s.gridwidth=4;
- s.weightx = 1;
- s.weighty=0;
- layout.setConstraints(distTextField, s);
- s.gridwidth=0;
- s.weightx = 0;
- s.weighty=0;
- layout.setConstraints(req01Button, s);
- s.gridwidth=0;
- s.weightx = 1;
- s.weighty=3;
- layout.setConstraints(scr_sqlres1TArea, s);
- ////////
- s.gridwidth=1;
- s.weightx = 0;
- s.weighty=0;
- layout.setConstraints(req02Label, s);
- s.gridwidth=0;
- s.weightx = 0;
- s.weighty=0;
- layout.setConstraints(req02Button, s);
- s.gridwidth=4;
- s.weightx = 1;
- s.weighty=0;
- layout.setConstraints(padPanel, s);
- s.gridwidth=0;
- s.weightx = 0;
- s.weighty=0;
- layout.setConstraints(clearButton, s);
- s.gridwidth=4;
- s.weightx = 0;
- s.weighty=0;
- layout.setConstraints(nomTextField, s);
- tab.addTab("GUI Mode", jPanelGUI);
- JPanel jPanelCLI = new JPanel();
- Border border = BorderFactory.createLineBorder(Color.BLACK);
- jPanelCLI.setLayout(new GridLayout(3, 2 ));
- JLabel reqLabel= new JLabel("SQL Statements:");
- reqLabel.setSize(200, 30);
- reqLabel.setBorder(border);
- jPanelCLI.add(reqLabel);
- sqlstmtTArea = new JTextArea(3,30);
- sqlstmtTArea.setLineWrap(true);
- sqlstmtTArea.setBorder(border);
- JScrollPane scr_sqlstmtTArea = new JScrollPane(sqlstmtTArea,
- JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
- JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
- jPanelCLI.add(scr_sqlstmtTArea);
- JLabel resLabel = new JLabel("Results:");
- resLabel.setBorder(border);
- jPanelCLI.add(resLabel);
- sqlresTArea = new JTextArea(3,30);
- sqlresTArea.setLineWrap(true);
- sqlresTArea.setBorder(border);
- JScrollPane scr_sqlresTArea = new JScrollPane(sqlresTArea,
- JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
- JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
- jPanelCLI.add(scr_sqlresTArea);
- JButton cherchButton = new JButton("EXECUTER");
- cherchButton.setActionCommand("Executer");
- cherchButton.addActionListener(this);
- jPanelCLI.add(cherchButton);
- JButton annulerButton = new JButton("EFFACER RESULTAT");
- annulerButton.setActionCommand("Effacer");
- annulerButton.addActionListener(this);
- jPanelCLI.add(annulerButton);
- tab.addTab("CLI Mode", jPanelCLI);
- add(tab);
- }
- @Override
- public void actionPerformed(ActionEvent e) {
- String actionCommand = e.getActionCommand( );
- switch(actionCommand){
- case "Executer":
- if(sqlstmtTArea.getText().length()!=0) {
- ResultSet rs = executerSQL(sqlstmtTArea.getText());
- try {
- if(rs!=null) {
- int ncol = rs.getMetaData().getColumnCount();
- for(int i=1;i<=ncol;i++) {
- sqlresTArea.append(rs.getMetaData().getColumnName(i) + "\t");
- }
- sqlresTArea.append("\n");
- while ( rs.next() ) {
- for(int i=1;i<=ncol;i++) {
- sqlresTArea.append(rs.getString(i) + "\t");
- }
- sqlresTArea.append("\n");
- }
- rs.close();
- }
- stmt1.close();
- c.close();
- }catch ( Exception e1 ) {
- System.err.println( e1.getClass().getName()+": "+ e1.getMessage() );
- System.exit(0);
- }
- }
- break;
- case "Effacer":
- sqlresTArea.setText("");
- break;
- case "clearbtn":
- sqlres1TArea.setText("");
- break;
- case "req01btn":
- if(distTextField.getText().length()!=0) {
- ResultSet rs = executerSQL(str_req[0]+distTextField.getText()+";");
- try {
- if(rs!=null) {
- int ncol = rs.getMetaData().getColumnCount();
- for(int i=1;i<=ncol;i++) {
- sqlres1TArea.append(rs.getMetaData().getColumnName(i) + "\t");
- }
- sqlres1TArea.append("\n");
- while ( rs.next() ) {
- for(int i=1;i<=ncol;i++) {
- sqlres1TArea.append(rs.getString(i) + "\t");
- }
- sqlres1TArea.append("\n");
- }
- rs.close();
- }
- stmt1.close();
- c.close();
- }catch ( Exception e1 ) {
- System.err.println( e1.getClass().getName()+": "+ e1.getMessage() );
- System.exit(0);
- }
- }
- break;
- case "req02btn":
- if(nomTextField.getText().length()!=0) {
- ResultSet rs = executerSQL(str_req[1]+"\'"+nomTextField.getText()+"\';");
- try {
- if(rs!=null) {
- int ncol = rs.getMetaData().getColumnCount();
- for(int i=1;i<=ncol;i++) {
- sqlres1TArea.append(rs.getMetaData().getColumnName(i) + "\t");
- }
- sqlres1TArea.append("\n");
- while ( rs.next() ) {
- for(int i=1;i<=ncol;i++) {
- sqlres1TArea.append(rs.getString(i) + "\t");
- }
- sqlres1TArea.append("\n");
- }
- rs.close();
- }
- stmt1.close();
- c.close();
- }catch ( Exception e1 ) {
- System.err.println( e1.getClass().getName()+": "+ e1.getMessage() );
- System.exit(0);
- }
- }
- break;
- }
- }
- public ResultSet executerSQL(String strstmt) {
- try {
- Class.forName("org.postgresql.Driver");
- c = DriverManager
- .getConnection("jdbc:postgresql://localhost:5433/partagea",
- "postgres", "1");
- c.setAutoCommit(false);
- System.out.println("Opened database successfully");
- stmt1 = c.createStatement();
- stmt1.execute("set search_path to projetbd;");
- stmt1.execute(strstmt);
- res = stmt1.getResultSet();
- } catch ( Exception e1 ) {
- System.err.println( e1.getClass().getName()+": "+ e1.getMessage() );
- System.exit(0);
- }
- return res;
- }
- }
Add Comment
Please, Sign In to add comment