Accueil > > > UNE INTERFACE POUR MYSQL
UNE INTERFACE POUR MYSQL
Information sur la source
Description
il s'agit d'une petite interface pour MySql,, on se connecte au driver jdbc (il faut l'avoir installé auparavant...). je me suis servi du code de qqn de ce site (je ne me souviens plus de son pseudo, j'espère qu'il m'excusera si il se reconnait) pour la JTable. Il est nécessaire de bien connaitre mysql. Ce truc a été fait avec netbeans.
Source
- /*
- * Main.java
- *
- * Created on 4 février 2004, 20:42
- */
- import java.sql.*;
- import java.io.*;
- import java.util.*;
- import javax.swing.table.*;
- import javax.swing.*;
- import java.awt.*;
-
- public class MySql extends javax.swing.JFrame {
- Connection connection;
- /** Creates new form Main */
- public MySql() {
- initComponents();
- setSize(515,535);
- this.setResizable(false);
- }
-
- /** This method is called from within the constructor to
- * initialize the form.
- * WARNING: Do NOT modify this code. The content of this method is
- * always regenerated by the Form Editor.
- */
- private void initComponents() {//GEN-BEGIN:initComponents
- jPanel1 = new javax.swing.JPanel();
- jLabel1 = new javax.swing.JLabel();
- jLabel2 = new javax.swing.JLabel();
- jTextField1 = new javax.swing.JTextField();
- jButton1 = new javax.swing.JButton();
- jPasswordField1 = new javax.swing.JPasswordField();
- jPanel2 = new javax.swing.JPanel();
- jScrollPane2 = new javax.swing.JScrollPane();
- jTextPane2 = new javax.swing.JTextPane();
- jPanel3 = new javax.swing.JPanel();
- jScrollPane1 = new javax.swing.JScrollPane();
- jTextPane1 = new javax.swing.JTextPane();
- jButton2 = new javax.swing.JButton();
- jPanel4 = new javax.swing.JPanel();
- jScrollPane3 = new javax.swing.JScrollPane();
- jTable1 = new javax.swing.JTable();
- jButton4 = new javax.swing.JButton();
- jButton3 = new javax.swing.JButton();
- jButton5 = new javax.swing.JButton();
- jLabel3 = new javax.swing.JLabel();
-
- getContentPane().setLayout(null);
-
- setTitle("MySql interface");
- addWindowListener(new java.awt.event.WindowAdapter() {
- public void windowClosing(java.awt.event.WindowEvent evt) {
- exitForm(evt);
- }
- });
-
- jPanel1.setLayout(null);
-
- jLabel1.setText("user");
- jPanel1.add(jLabel1);
- jLabel1.setBounds(10, 10, 40, 20);
-
- jLabel2.setText("password");
- jPanel1.add(jLabel2);
- jLabel2.setBounds(130, 10, 70, 24);
-
- jTextField1.setName("user");
- jTextField1.setPreferredSize(new java.awt.Dimension(50, 25));
- jPanel1.add(jTextField1);
- jTextField1.setBounds(50, 10, 70, 25);
-
- jButton1.setText("connect");
- jButton1.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- jButton1ActionPerformed(evt);
- }
- });
-
- jPanel1.add(jButton1);
- jButton1.setBounds(310, 10, 90, 30);
-
- jPanel1.add(jPasswordField1);
- jPasswordField1.setBounds(200, 10, 100, 28);
-
- getContentPane().add(jPanel1);
- jPanel1.setBounds(0, 0, 410, 40);
-
- jPanel2.setLayout(new java.awt.BorderLayout());
-
- jScrollPane2.setViewportView(jTextPane2);
-
- jPanel2.add(jScrollPane2, java.awt.BorderLayout.CENTER);
-
- getContentPane().add(jPanel2);
- jPanel2.setBounds(10, 70, 490, 130);
-
- jPanel3.setLayout(new java.awt.BorderLayout());
-
- jScrollPane1.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
- jTextPane1.setText("To connect, enter your username and password");
- jScrollPane1.setViewportView(jTextPane1);
-
- jPanel3.add(jScrollPane1, java.awt.BorderLayout.CENTER);
-
- getContentPane().add(jPanel3);
- jPanel3.setBounds(10, 380, 490, 100);
-
- jButton2.setText("execute SQL");
- jButton2.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- jButton2ActionPerformed(evt);
- }
- });
-
- getContentPane().add(jButton2);
- jButton2.setBounds(290, 210, 110, 30);
-
- jPanel4.setLayout(new java.awt.BorderLayout());
-
- jScrollPane3.setBorder(new javax.swing.border.MatteBorder(null));
- jTable1.setModel(new javax.swing.table.DefaultTableModel(
- new Object [][] {
- {null, null, null, null},
- {null, null, null, null},
- {null, null, null, null},
- {null, null, null, null}
- },
- new String [] {
- "Title 1", "Title 2", "Title 3", "Title 4"
- }
- ));
- jScrollPane3.setViewportView(jTable1);
-
- jPanel4.add(jScrollPane3, java.awt.BorderLayout.CENTER);
-
- getContentPane().add(jPanel4);
- jPanel4.setBounds(10, 250, 490, 120);
-
- jButton4.setText("import SQL File");
- jButton4.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- OuvrirFichierActionPerformed(evt);
- }
- });
-
- getContentPane().add(jButton4);
- jButton4.setBounds(150, 210, 140, 30);
-
- jButton3.setText("show databases");
- jButton3.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- jButton3ActionPerformed(evt);
- }
- });
-
- getContentPane().add(jButton3);
- jButton3.setBounds(10, 210, 140, 30);
-
- jButton5.setText("quit");
- jButton5.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- quitterActionPerformed(evt);
- }
- });
-
- getContentPane().add(jButton5);
- jButton5.setBounds(440, 480, 60, 30);
-
- jLabel3.setText("Write your SQL code here or import a file :");
- getContentPane().add(jLabel3);
- jLabel3.setBounds(10, 50, 270, 24);
-
- pack();
- }//GEN-END:initComponents
-
- private void quitterActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_quitterActionPerformed
- // Add your handling code here:
- System.exit(0);
- }//GEN-LAST:event_quitterActionPerformed
-
- private void OuvrirFichierActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_OuvrirFichierActionPerformed
- // Add your handling code here:
- String currentDir=".";
- String destination;
- File selected;
- JFileChooser chooser = new JFileChooser();
- chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
- File fdir = new File(currentDir);
- chooser.setCurrentDirectory(fdir);
- if(chooser.showDialog(this,"Choisir") == JFileChooser.APPROVE_OPTION) {
- selected = chooser.getSelectedFile();
- destination = new String(selected.getParent() + File.separatorChar + selected.getName());
- currentDir = selected.getParent();
- String s= lireFichier(destination);
- jTextPane2.setText(s);
- }
- }//GEN-LAST:event_OuvrirFichierActionPerformed
-
- private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
- // Add your handling code here:
- executerSQL("show databases");
- }//GEN-LAST:event_jButton3ActionPerformed
-
- private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
- // Add your handling code here:
- try{
- String query=this.jTextPane2.getSelectedText().replace( '%', '`' );
- if(connection==null) ecrireOut("you have to be identified to perform this operation");
- else
- {executerSQL(query);
- if (query.startsWith("drop")||query.startsWith("create")) executerSQL("show tables");}
- }
- catch(NullPointerException excep){
- ecrireOut("you have to select some code to execute");
- }
- }//GEN-LAST:event_jButton2ActionPerformed
-
- void executerSQL(String query){
- // executer le sql de la fenetre
- if (connection==null) ecrireOut("you have to be identified to perform this operation");
- try {
- if ( connection == null ) {System.out.println("connection==null");return;}
- Statement stm = connection.createStatement();
- String catalog = connection.getCatalog();
-
-
-
- String queryMaj = query.toUpperCase();
-
- if ( ( queryMaj.trim().startsWith( "SELECT" ) )
- || ( queryMaj.trim().startsWith( "DESCRIBE" ) )
- || ( queryMaj.trim().startsWith( "SHOW" ) ) ) {
- jTable1.removeAll();
- ResultSet rs = stm.executeQuery( query );
- ResultSetMetaData mdt = rs.getMetaData();
- int num = mdt.getColumnCount();
- DefaultTableModel df = new DefaultTableModel() {
- public boolean isCellEditable( int row, int col )
- { if ( (row>>1)<<1 == row ) return true; return false; } };
- for ( int i = 0; i < num; i++ ) { df.addColumn( mdt.getColumnName( i + 1 ) ); }
- jTable1.setModel( df );
-
- TableCellRenderer tbcH = createDemoHeaderRenderer();
- for ( int i = 0; i < num; i++ ) {
- TableColumn tc = jTable1.getTableHeader().getColumnModel().getColumn( i );
- tc.setHeaderRenderer( tbcH );
- tc.setCellRenderer( new DemoCellRenderer() );
- }
- int line = 0;
- while ( rs.next() ) {
- Vector v = new Vector( 10 );
- for ( int col = 0; col < num; col++ )
- v.addElement( rs.getString( col + 1 ) );
- df.addRow( v );
- line++;
- }
- jTextPane1.setText( line + " rows selected");
- rs.close();
- }
- else {
- ecrireOut( "SQL executer : " + query );
- stm.executeUpdate( query );
- }
- stm.close();
- }
- catch ( Exception e ) {
- jTextPane1.setText( "\nError execute sql : " + e );
- jTextPane1.setText( "sql : " + query );
- }
- }
- void ecrireOut(String chaine){
- jTextPane1.setText(chaine);
- }
-
- class DemoCellRenderer extends JLabel
- implements TableCellRenderer {
- boolean isBordered = true;
- Color selectedForeground = null;
- Color selectedBackground = null;
- Color unselectedForegroundAlt = null;
- Color unselectedBackgroundAlt = new Color( 200, 200, 200 );
- Color unselectedForeground = null;
- Color unselectedBackground = null;
-
- public DemoCellRenderer() {
- super();
- setOpaque(true);
- }
-
- public Component getTableCellRendererComponent(
- JTable table, Object val,
- boolean isSelected, boolean hasFocus,
- int row, int column) {
- setAlignmentX( CENTER_ALIGNMENT );
-
-
- Font f = getFont();
- if ( isSelected ) {
- setFont( new Font( f.getName(), Font.PLAIN|Font.ITALIC, f.getSize() ) );
-
- super.setForeground( ( selectedForeground != null) ? selectedForeground : table.getSelectionForeground() );
- super.setBackground( ( selectedBackground != null) ? selectedBackground : table.getSelectionBackground() );
- }
- else {
- setFont( new Font( f.getName(), Font.PLAIN, f.getSize() ) );
- if ( ((column)>>1)<<1 == column - (row-((row>>1)<<1)) ) {
- super.setForeground( ( unselectedForegroundAlt != null) ? unselectedForegroundAlt : table.getForeground() );
- super.setBackground( ( unselectedBackgroundAlt != null) ? unselectedBackgroundAlt : table.getBackground() );
- }
- else {
- super.setForeground( ( unselectedForeground != null) ? unselectedForeground : table.getForeground() );
- super.setBackground( ( unselectedBackground != null) ? unselectedBackground : table.getBackground() );
- }
- }
- setText( (String)val );
- return this;
- }
- }
-
- Color foreColor = new Color( 0, 0, 50 );
- Hashtable couleur = new Hashtable( 10 );
- Color defoBack = new Color( 194, 194, 194);
-
- private TableCellRenderer createDemoHeaderRenderer() {
- DefaultTableCellRenderer label = new
- DefaultTableCellRenderer() {
- public Component getTableCellRendererComponent(JTable table, Object value,
- boolean isSelected, boolean hasFocus, int row, int column) {
- setText((value == null) ? "" : value.toString());
- if (table != null) {
- JTableHeader header = table.getTableHeader();
- if (header != null) {
-
- Color back = (Color)couleur.get( getText() );
- setForeground( foreColor );
- setBackground( (back==null)?defoBack:back );
- setFont(header.getFont());
- }
- }
- setBorder(UIManager.getBorder("TableHeader.cellBorder"));
- return this;
- }
- };
- label.setHorizontalAlignment(JLabel.CENTER);
- return label;
- }
- private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
- // Add your handling code here:
- String user=jTextField1.getText();
- char[] passwd=jPasswordField1.getPassword();
- connect(user,passwd);
- }//GEN-LAST:event_jButton1ActionPerformed
-
- public void connect(String user,char[] passwd) {
- String out=new String();
- try {
- String pass = new String(passwd);
- if (user.compareTo("")==0)
- {jTextPane1.setText("Enter a valid username/password please");
- return;}
-
-
- out="Connecting to the JDBC driver\n";
- Class.forName("com.mysql.jdbc.Driver").newInstance();
- out=out+"Driver com.mysql.jdbc.Driver loaded\n";
- try {
- out=out+"Connecting to database\n";
- connection = DriverManager.getConnection("jdbc:mysql://localhost/test?user="+user +
- "&password="+ pass);
- out=out+"Database connected\n";
- } catch (SQLException ex) {
- out = out + "Your user/password is not correct, try again please";
- }
- } catch (Exception ex) {
- jTextPane1.setText("Driver loading failed\n");
- }
- jTextPane1.setText(out);
- }
-
- String lireFichier(String fic) {
- FileReader fr = null;
- LineNumberReader reader = null;
-
- try {
- fr = new FileReader(fic);
- reader = new LineNumberReader(fr);
- }
- catch (FileNotFoundException e) {
- reader = null;
- ecrireOut(fic+" (fichier introuvable)");
- return("");
- }
-
- String res = "";
- String line;
- try {
- for (;;) {
- line = reader.readLine();
- if (line == null) break;
- res += line+"\r\n";
- }
- }
- catch (IOException e) {
- ecrireOut(fic+" (lecture imposible)");
- }
- try {
- reader.close();
- fr.close();
- }
- catch (IOException e) {
- ecrireOut(fic+" (fermeture impossible)");
- }
- reader = null;
- return(res);
- }
-
- /** Exit the Application */
- private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm
- try {
- Toolkit.getDefaultToolkit().beep();
- int reply = JOptionPane.showConfirmDialog(this,
- "Do you really want to quit?",
- "Interface MySql - Quit" ,
- JOptionPane.YES_NO_OPTION,
- JOptionPane.QUESTION_MESSAGE);
- if (reply == JOptionPane.YES_OPTION) {
- System.exit(0);
- }
- } catch (Exception e) {
- }
- }//GEN-LAST:event_exitForm
-
- /**
- * @param args the command line arguments
- */
- public static void main(String args[]) {
- new MySql().show();
- }
-
-
- // Variables declaration - do not modify//GEN-BEGIN:variables
- private javax.swing.JButton jButton1;
- private javax.swing.JButton jButton2;
- private javax.swing.JButton jButton3;
- private javax.swing.JButton jButton4;
- private javax.swing.JButton jButton5;
- private javax.swing.JLabel jLabel1;
- private javax.swing.JLabel jLabel2;
- private javax.swing.JLabel jLabel3;
- private javax.swing.JPanel jPanel1;
- private javax.swing.JPanel jPanel2;
- private javax.swing.JPanel jPanel3;
- private javax.swing.JPanel jPanel4;
- private javax.swing.JPasswordField jPasswordField1;
- private javax.swing.JScrollPane jScrollPane1;
- private javax.swing.JScrollPane jScrollPane2;
- private javax.swing.JScrollPane jScrollPane3;
- private javax.swing.JTable jTable1;
- private javax.swing.JTextField jTextField1;
- private javax.swing.JTextPane jTextPane1;
- private javax.swing.JTextPane jTextPane2;
- // End of variables declaration//GEN-END:variables
-
- }
/*
* Main.java
*
* Created on 4 février 2004, 20:42
*/
import java.sql.*;
import java.io.*;
import java.util.*;
import javax.swing.table.*;
import javax.swing.*;
import java.awt.*;
public class MySql extends javax.swing.JFrame {
Connection connection;
/** Creates new form Main */
public MySql() {
initComponents();
setSize(515,535);
this.setResizable(false);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
private void initComponents() {//GEN-BEGIN:initComponents
jPanel1 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jPasswordField1 = new javax.swing.JPasswordField();
jPanel2 = new javax.swing.JPanel();
jScrollPane2 = new javax.swing.JScrollPane();
jTextPane2 = new javax.swing.JTextPane();
jPanel3 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
jTextPane1 = new javax.swing.JTextPane();
jButton2 = new javax.swing.JButton();
jPanel4 = new javax.swing.JPanel();
jScrollPane3 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jButton4 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jButton5 = new javax.swing.JButton();
jLabel3 = new javax.swing.JLabel();
getContentPane().setLayout(null);
setTitle("MySql interface");
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
jPanel1.setLayout(null);
jLabel1.setText("user");
jPanel1.add(jLabel1);
jLabel1.setBounds(10, 10, 40, 20);
jLabel2.setText("password");
jPanel1.add(jLabel2);
jLabel2.setBounds(130, 10, 70, 24);
jTextField1.setName("user");
jTextField1.setPreferredSize(new java.awt.Dimension(50, 25));
jPanel1.add(jTextField1);
jTextField1.setBounds(50, 10, 70, 25);
jButton1.setText("connect");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jPanel1.add(jButton1);
jButton1.setBounds(310, 10, 90, 30);
jPanel1.add(jPasswordField1);
jPasswordField1.setBounds(200, 10, 100, 28);
getContentPane().add(jPanel1);
jPanel1.setBounds(0, 0, 410, 40);
jPanel2.setLayout(new java.awt.BorderLayout());
jScrollPane2.setViewportView(jTextPane2);
jPanel2.add(jScrollPane2, java.awt.BorderLayout.CENTER);
getContentPane().add(jPanel2);
jPanel2.setBounds(10, 70, 490, 130);
jPanel3.setLayout(new java.awt.BorderLayout());
jScrollPane1.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
jTextPane1.setText("To connect, enter your username and password");
jScrollPane1.setViewportView(jTextPane1);
jPanel3.add(jScrollPane1, java.awt.BorderLayout.CENTER);
getContentPane().add(jPanel3);
jPanel3.setBounds(10, 380, 490, 100);
jButton2.setText("execute SQL");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
getContentPane().add(jButton2);
jButton2.setBounds(290, 210, 110, 30);
jPanel4.setLayout(new java.awt.BorderLayout());
jScrollPane3.setBorder(new javax.swing.border.MatteBorder(null));
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane3.setViewportView(jTable1);
jPanel4.add(jScrollPane3, java.awt.BorderLayout.CENTER);
getContentPane().add(jPanel4);
jPanel4.setBounds(10, 250, 490, 120);
jButton4.setText("import SQL File");
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
OuvrirFichierActionPerformed(evt);
}
});
getContentPane().add(jButton4);
jButton4.setBounds(150, 210, 140, 30);
jButton3.setText("show databases");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});
getContentPane().add(jButton3);
jButton3.setBounds(10, 210, 140, 30);
jButton5.setText("quit");
jButton5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
quitterActionPerformed(evt);
}
});
getContentPane().add(jButton5);
jButton5.setBounds(440, 480, 60, 30);
jLabel3.setText("Write your SQL code here or import a file :");
getContentPane().add(jLabel3);
jLabel3.setBounds(10, 50, 270, 24);
pack();
}//GEN-END:initComponents
private void quitterActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_quitterActionPerformed
// Add your handling code here:
System.exit(0);
}//GEN-LAST:event_quitterActionPerformed
private void OuvrirFichierActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_OuvrirFichierActionPerformed
// Add your handling code here:
String currentDir=".";
String destination;
File selected;
JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
File fdir = new File(currentDir);
chooser.setCurrentDirectory(fdir);
if(chooser.showDialog(this,"Choisir") == JFileChooser.APPROVE_OPTION) {
selected = chooser.getSelectedFile();
destination = new String(selected.getParent() + File.separatorChar + selected.getName());
currentDir = selected.getParent();
String s= lireFichier(destination);
jTextPane2.setText(s);
}
}//GEN-LAST:event_OuvrirFichierActionPerformed
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
// Add your handling code here:
executerSQL("show databases");
}//GEN-LAST:event_jButton3ActionPerformed
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
// Add your handling code here:
try{
String query=this.jTextPane2.getSelectedText().replace( '%', '`' );
if(connection==null) ecrireOut("you have to be identified to perform this operation");
else
{executerSQL(query);
if (query.startsWith("drop")||query.startsWith("create")) executerSQL("show tables");}
}
catch(NullPointerException excep){
ecrireOut("you have to select some code to execute");
}
}//GEN-LAST:event_jButton2ActionPerformed
void executerSQL(String query){
// executer le sql de la fenetre
if (connection==null) ecrireOut("you have to be identified to perform this operation");
try {
if ( connection == null ) {System.out.println("connection==null");return;}
Statement stm = connection.createStatement();
String catalog = connection.getCatalog();
String queryMaj = query.toUpperCase();
if ( ( queryMaj.trim().startsWith( "SELECT" ) )
|| ( queryMaj.trim().startsWith( "DESCRIBE" ) )
|| ( queryMaj.trim().startsWith( "SHOW" ) ) ) {
jTable1.removeAll();
ResultSet rs = stm.executeQuery( query );
ResultSetMetaData mdt = rs.getMetaData();
int num = mdt.getColumnCount();
DefaultTableModel df = new DefaultTableModel() {
public boolean isCellEditable( int row, int col )
{ if ( (row>>1)<<1 == row ) return true; return false; } };
for ( int i = 0; i < num; i++ ) { df.addColumn( mdt.getColumnName( i + 1 ) ); }
jTable1.setModel( df );
TableCellRenderer tbcH = createDemoHeaderRenderer();
for ( int i = 0; i < num; i++ ) {
TableColumn tc = jTable1.getTableHeader().getColumnModel().getColumn( i );
tc.setHeaderRenderer( tbcH );
tc.setCellRenderer( new DemoCellRenderer() );
}
int line = 0;
while ( rs.next() ) {
Vector v = new Vector( 10 );
for ( int col = 0; col < num; col++ )
v.addElement( rs.getString( col + 1 ) );
df.addRow( v );
line++;
}
jTextPane1.setText( line + " rows selected");
rs.close();
}
else {
ecrireOut( "SQL executer : " + query );
stm.executeUpdate( query );
}
stm.close();
}
catch ( Exception e ) {
jTextPane1.setText( "\nError execute sql : " + e );
jTextPane1.setText( "sql : " + query );
}
}
void ecrireOut(String chaine){
jTextPane1.setText(chaine);
}
class DemoCellRenderer extends JLabel
implements TableCellRenderer {
boolean isBordered = true;
Color selectedForeground = null;
Color selectedBackground = null;
Color unselectedForegroundAlt = null;
Color unselectedBackgroundAlt = new Color( 200, 200, 200 );
Color unselectedForeground = null;
Color unselectedBackground = null;
public DemoCellRenderer() {
super();
setOpaque(true);
}
public Component getTableCellRendererComponent(
JTable table, Object val,
boolean isSelected, boolean hasFocus,
int row, int column) {
setAlignmentX( CENTER_ALIGNMENT );
Font f = getFont();
if ( isSelected ) {
setFont( new Font( f.getName(), Font.PLAIN|Font.ITALIC, f.getSize() ) );
super.setForeground( ( selectedForeground != null) ? selectedForeground : table.getSelectionForeground() );
super.setBackground( ( selectedBackground != null) ? selectedBackground : table.getSelectionBackground() );
}
else {
setFont( new Font( f.getName(), Font.PLAIN, f.getSize() ) );
if ( ((column)>>1)<<1 == column - (row-((row>>1)<<1)) ) {
super.setForeground( ( unselectedForegroundAlt != null) ? unselectedForegroundAlt : table.getForeground() );
super.setBackground( ( unselectedBackgroundAlt != null) ? unselectedBackgroundAlt : table.getBackground() );
}
else {
super.setForeground( ( unselectedForeground != null) ? unselectedForeground : table.getForeground() );
super.setBackground( ( unselectedBackground != null) ? unselectedBackground : table.getBackground() );
}
}
setText( (String)val );
return this;
}
}
Color foreColor = new Color( 0, 0, 50 );
Hashtable couleur = new Hashtable( 10 );
Color defoBack = new Color( 194, 194, 194);
private TableCellRenderer createDemoHeaderRenderer() {
DefaultTableCellRenderer label = new
DefaultTableCellRenderer() {
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
setText((value == null) ? "" : value.toString());
if (table != null) {
JTableHeader header = table.getTableHeader();
if (header != null) {
Color back = (Color)couleur.get( getText() );
setForeground( foreColor );
setBackground( (back==null)?defoBack:back );
setFont(header.getFont());
}
}
setBorder(UIManager.getBorder("TableHeader.cellBorder"));
return this;
}
};
label.setHorizontalAlignment(JLabel.CENTER);
return label;
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
// Add your handling code here:
String user=jTextField1.getText();
char[] passwd=jPasswordField1.getPassword();
connect(user,passwd);
}//GEN-LAST:event_jButton1ActionPerformed
public void connect(String user,char[] passwd) {
String out=new String();
try {
String pass = new String(passwd);
if (user.compareTo("")==0)
{jTextPane1.setText("Enter a valid username/password please");
return;}
out="Connecting to the JDBC driver\n";
Class.forName("com.mysql.jdbc.Driver").newInstance();
out=out+"Driver com.mysql.jdbc.Driver loaded\n";
try {
out=out+"Connecting to database\n";
connection = DriverManager.getConnection("jdbc:mysql://localhost/test?user="+user +
"&password="+ pass);
out=out+"Database connected\n";
} catch (SQLException ex) {
out = out + "Your user/password is not correct, try again please";
}
} catch (Exception ex) {
jTextPane1.setText("Driver loading failed\n");
}
jTextPane1.setText(out);
}
String lireFichier(String fic) {
FileReader fr = null;
LineNumberReader reader = null;
try {
fr = new FileReader(fic);
reader = new LineNumberReader(fr);
}
catch (FileNotFoundException e) {
reader = null;
ecrireOut(fic+" (fichier introuvable)");
return("");
}
String res = "";
String line;
try {
for (;;) {
line = reader.readLine();
if (line == null) break;
res += line+"\r\n";
}
}
catch (IOException e) {
ecrireOut(fic+" (lecture imposible)");
}
try {
reader.close();
fr.close();
}
catch (IOException e) {
ecrireOut(fic+" (fermeture impossible)");
}
reader = null;
return(res);
}
/** Exit the Application */
private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm
try {
Toolkit.getDefaultToolkit().beep();
int reply = JOptionPane.showConfirmDialog(this,
"Do you really want to quit?",
"Interface MySql - Quit" ,
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
if (reply == JOptionPane.YES_OPTION) {
System.exit(0);
}
} catch (Exception e) {
}
}//GEN-LAST:event_exitForm
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
new MySql().show();
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JButton jButton5;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPasswordField jPasswordField1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JScrollPane jScrollPane3;
private javax.swing.JTable jTable1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextPane jTextPane1;
private javax.swing.JTextPane jTextPane2;
// End of variables declaration//GEN-END:variables
}
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
[FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : PLEINIèRE SECOND JOURTECHDAYS PARIS 2012 : PLEINIèRE SECOND JOUR par ROMELARD Fabrice
Après une première journée dédiée aux développeurs, cette seconde journée est dédiée au monde des entreprises et de ses applications. Ainsi, cette pleinière est dédiée à faire un 360 de l'évolution des applications Business aux demandes ac...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : SQLRE : SQL par Julien39
Cliquez pour lire la suite par Julien39
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|