Tip: Click lines to highlight, hold ctrl/cmd to multi-select

http://codedumper.com/oxevi (21-Jul @ 13:44)

Syntax Highlighted Code

  1. package com;
  2.  
  3.   public class Tableur extends JPanel implements TableModelListener
  4.    {
  5.         public boolean filtering=false;
  6.  
  7.        public JLabel label = new JLabel("Filter");
  8.         public JButton buttonFilter = new JButton("Filter");
  9.        private Object[][] donnees;
  10.        private String[] nomsColonnes;
  11.        private JTable table;
  12.        private TableModel tableur;
  13.        private int[] vsize;
  14.        private javax.swing.JLabel jLabel1;
  15.        private javax.swing.JButton aj1,aj2;
  16.        private TableModelPerso tt;
  17.        private int ajoutsupp;
  18.        private int posilig;
  19.        private TableRowSorter<TableModel> sorter;
  20.        public JFrame monCadre;
  21.        public JTextField filterText =
  22.             new JTextField("mp3",5);
  23.      
  24.        public Tableur(TableModelPerso vtablemodelperso,int vajoutsupp)
  25.        {
  26.            tt=vtablemodelperso;
  27.            ajoutsupp=vajoutsupp;
  28.            this.setLayout(new BorderLayout());
  29.            
  30.            table = new JTable(vtablemodelperso);
  31.            table.setColumnSelectionAllowed(true);
  32.            table.setRowSelectionAllowed(true);
  33.            table.setSelectionBackground(Color.BLUE);
  34.            
  35.            //table.setPreferredScrollableViewportSize(table.getPreferredSize());
  36.            table.setRowSelectionAllowed(true);
  37.            table.setColumnSelectionAllowed(false);
  38.            table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  39.            sorter = new TableRowSorter<TableModel>(tt);
  40.            
  41.            JPanel panel2 = new JPanel();
  42.            FlowLayout flow = new FlowLayout();
  43.            flow.setAlignment(FlowLayout.TRAILING);
  44.            panel2.setLayout(flow);
  45.          
  46.            add(filterText, BorderLayout.CENTER);
  47.            
  48.            panel2.add(label);
  49.            panel2.add(filterText);
  50.             panel2.add(buttonFilter);
  51.            
  52.            JToolBar toolBar = new JToolBar();
  53.                toolBar.setFloatable(false);
  54.                toolBar.add(new AbstractAction("Insertar linea") {
  55.             public void actionPerformed(ActionEvent e) {
  56.                 sorter.setRowFilter(null);
  57.                  tt.addligne();
  58.             }
  59.         });
  60.         toolBar.add( new AbstractAction("Borrar linea") {
  61.             public void actionPerformed(ActionEvent e) {
  62.                 //sorter.setRowFilter(null);
  63.                  if (tt.getDonnees().length==0)
  64.                  {
  65.                      JOptionPane d = new JOptionPane();
  66.                      d.showMessageDialog( d.getParent(),"No linea!","Error!",JOptionPane.ERROR_MESSAGE);
  67.                  return;
  68.                 }
  69.                  
  70.                
  71.                  int test =0;
  72.                  //sorter.setRowFilter(null);
  73.                  //table.changeSelection(posilig,0,false,false);
  74.                  Integer idSup = new Integer(0);
  75.                  idSup = (Integer)table.getValueAt(table.getSelectedRow(),0);
  76.                  test = idSup.intValue();
  77.                 // int nbColumn = tt.getColumnCount();
  78.                 for (int k=0;k<tt.getRowCount();k++)
  79.                  {
  80.                     idSup = (Integer)table.getValueAt(k,0);
  81.                     if (idSup.intValue() == test)
  82.                     {
  83.                         sorter.setRowFilter(null);
  84.                         tt.suppligne(k);
  85.                     }
  86.                    
  87.                  }
  88.                
  89.                  
  90.             }
  91.         });
  92.        
  93.         //toolBar.add(theRemoveRowAction);
  94.         toolBar.add(new AbstractAction("Cancelar cambios") {
  95.             public void actionPerformed(ActionEvent e) {
  96.                 //reload();
  97.             }
  98.         });
  99.        
  100.         toolBar.add(new AbstractAction("Enviar cambios") {
  101.             public void actionPerformed(ActionEvent e) {
  102.                 //insertInBaseDatos();
  103.             }
  104.         });
  105.            
  106.            panel2.add(toolBar);
  107.          
  108.            buttonFilter.addActionListener(new ActionListener() {
  109.                  public void actionPerformed(ActionEvent e) {
  110.                      filtering = true;
  111.                    String text = filterText.getText();
  112.                    if (text.length() == 0) {
  113.                      sorter.setRowFilter(null);
  114.                    } else {
  115.                      try {
  116.                        sorter.setRowFilter(
  117.                            RowFilter.regexFilter(text));
  118.                        filtering = false;
  119.                      } catch (PatternSyntaxException pse) {
  120.                        System.err.println("Bad regex pattern");
  121.                        filtering = false;
  122.                      }
  123.                    }
  124.                  }
  125.                });
  126.  
  127.          
  128.            
  129.            
  130.            
  131.            
  132.            
  133.            table.setRowSorter(sorter);
  134.            int[] vsize=vtablemodelperso.getSizecol();
  135.            int tailletot=0;
  136.            
  137.            for (int i=0;i<vsize.length;i++)
  138.            {
  139.                table.getColumnModel().getColumn(i).setPreferredWidth(vsize[i]);
  140.                if (vsize[i]==0) {table.getColumnModel().getColumn(i).setMinWidth(vsize[i]);table.getColumnModel().getColumn(i).setMaxWidth(vsize[i]);}
  141.                tailletot=tailletot+vsize[i];
  142.            }
  143.            vtablemodelperso.addEcouteur(table);
  144.            table.setPreferredScrollableViewportSize(new Dimension(tailletot+500, 150));
  145.            JScrollPane avecAsc = new JScrollPane(table);
  146.            avecAsc.setSize(500, 500);
  147.            jLabel1 = new javax.swing.JLabel();
  148.            jLabel1.setBackground(new java.awt.Color(255, 255, 51));
  149.            jLabel1.setText("Double clic sur une colonne pour trier la table");
  150.            jLabel1.setOpaque(true);
  151.            jLabel1.setName("TITRE");
  152.            jLabel1.setPreferredSize(new java.awt.Dimension(55, 20));
  153.            aj1 = new javax.swing.JButton();
  154.            aj1.setBackground(new java.awt.Color(255, 255, 51));
  155.            aj1.setText("AƱadir linea");
  156.            aj1.setPreferredSize(new java.awt.Dimension(150, 25));
  157.            aj2 = new javax.swing.JButton();
  158.            aj2.setBackground(new java.awt.Color(255, 255, 51));
  159.            aj2.setText("Borrar linea");
  160.            aj2.setPreferredSize(new java.awt.Dimension(150, 25));
  161.            if (filtering == true)
  162.            {
  163.                aj2.setEnabled(false);
  164.            }
  165.            //add(jLabel1);
  166.            add(avecAsc,BorderLayout.CENTER);
  167.            table.addMouseListener(new java.awt.event.MouseAdapter() {
  168.                public void mouseClicked(java.awt.event.MouseEvent evt) {
  169.                    posilig=(table.rowAtPoint(evt.getPoint()));
  170.                }
  171.            });
  172.            
  173.           if (!vtablemodelperso.isTypeselection() & ajoutsupp!=0){
  174.                // add(aj1,BorderLayout.SOUTH);
  175.              aj1.addMouseListener(new java.awt.event.MouseAdapter() {
  176.                  public void mouseClicked(java.awt.event.MouseEvent evt) {
  177.                      tt.addligne();
  178.               }});
  179.              
  180.              //add(aj2,BorderLayout.SOUTH);
  181.              
  182.              aj2.addMouseListener(new java.awt.event.MouseAdapter() {
  183.                  
  184.                  public void mouseClicked(java.awt.event.MouseEvent evt) {
  185.                  if (tt.getDonnees().length==0)
  186.                  {
  187.                      JOptionPane d = new JOptionPane();
  188.                      d.showMessageDialog( d.getParent(),"No linea!","Error!",JOptionPane.ERROR_MESSAGE);
  189.                  return;
  190.                 }
  191.                  
  192.                  table.changeSelection(posilig,0,false,false);
  193.                  
  194.                  for (int k=0;k<tt.getColumnCount();k++)
  195.                  {
  196.                      table.changeSelection(posilig,k,false,true);
  197.                  }
  198.                  tt.suppligne(posilig);
  199.              }});
  200.              add(panel2,BorderLayout.NORTH);
  201.          }
  202.          }
  203.        
  204.          public void tableChanged(TableModelEvent e)
  205.          {
  206.          }
  207.          
  208.          public void affiche( JFrame j,String vtitre)
  209.          {
  210.              final JFrame v=j;
  211.             if (monCadre == null){
  212.                monCadre = new JFrame();
  213.             }
  214.              //monCadre.setSize(400, 400);
  215.              monCadre.setTitle(vtitre);
  216.              monCadre.setContentPane(this);
  217.              monCadre.addWindowListener(new WindowAdapter()
  218.              {
  219.              public void windowClosing(WindowEvent evt)
  220.              {
  221.                  //v.setVisible(false);
  222.                  }
  223.             });
  224.                  //Insets insets = monCadre.getInsets();
  225.                 monCadre.setSize(300, 300);
  226.                 // java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
  227.                 monCadre.setBounds(300, 300, 500, 300);
  228.                  monCadre.pack();
  229.                  monCadre.setVisible(true);
  230.              }
  231.            
  232.              public Point getLocation() {
  233.                  Point retValue;
  234.                  retValue = super.getLocation();
  235.                  System.out.println(retValue);
  236.                  return retValue;
  237.              }
  238.              public String[] getNomsColonnes() {
  239.          return nomsColonnes;
  240.     }
  241.  }

Plain Code

package com;

  public class Tableur extends JPanel implements TableModelListener
   {
        public boolean filtering=false;

       public JLabel label = new JLabel("Filter");
        public JButton buttonFilter = new JButton("Filter");
       private Object[][] donnees;
       private String[] nomsColonnes;
       private JTable table;
       private TableModel tableur;
       private int[] vsize;
       private javax.swing.JLabel jLabel1;
       private javax.swing.JButton aj1,aj2;
       private TableModelPerso tt;
       private int ajoutsupp;
       private int posilig;
       private TableRowSorter<TableModel> sorter;
       public JFrame monCadre;
       public JTextField filterText =
            new JTextField("mp3",5);
      
       public Tableur(TableModelPerso vtablemodelperso,int vajoutsupp)
       {
           tt=vtablemodelperso;
           ajoutsupp=vajoutsupp;
           this.setLayout(new BorderLayout());
           
           table = new JTable(vtablemodelperso);
           table.setColumnSelectionAllowed(true);
           table.setRowSelectionAllowed(true);
           table.setSelectionBackground(Color.BLUE);
           
           //table.setPreferredScrollableViewportSize(table.getPreferredSize());
           table.setRowSelectionAllowed(true);
           table.setColumnSelectionAllowed(false);
           table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
           sorter = new TableRowSorter<TableModel>(tt);
           
           JPanel panel2 = new JPanel();
           FlowLayout flow = new FlowLayout();
           flow.setAlignment(FlowLayout.TRAILING);
           panel2.setLayout(flow);
          
           add(filterText, BorderLayout.CENTER);
           
           panel2.add(label);
           panel2.add(filterText);
            panel2.add(buttonFilter);
            
           JToolBar toolBar = new JToolBar();
               toolBar.setFloatable(false);
               toolBar.add(new AbstractAction("Insertar linea") {
            public void actionPerformed(ActionEvent e) {
                sorter.setRowFilter(null);
                 tt.addligne();
            }
        });
        toolBar.add( new AbstractAction("Borrar linea") {
            public void actionPerformed(ActionEvent e) {
                //sorter.setRowFilter(null);
                 if (tt.getDonnees().length==0)
                 {
                     JOptionPane d = new JOptionPane();
                     d.showMessageDialog( d.getParent(),"No linea!","Error!",JOptionPane.ERROR_MESSAGE);
                 return;
                }
                 
                
                 int test =0;
                 //sorter.setRowFilter(null);
                 //table.changeSelection(posilig,0,false,false);
                 Integer idSup = new Integer(0);
                 idSup = (Integer)table.getValueAt(table.getSelectedRow(),0);
                 test = idSup.intValue();
                // int nbColumn = tt.getColumnCount();
                for (int k=0;k<tt.getRowCount();k++)
                 {
                    idSup = (Integer)table.getValueAt(k,0);
                    if (idSup.intValue() == test)
                    {
                        sorter.setRowFilter(null);
                        tt.suppligne(k);
                    }
                    
                 }
                
                 
            }
        });
        
        //toolBar.add(theRemoveRowAction);
        toolBar.add(new AbstractAction("Cancelar cambios") {
            public void actionPerformed(ActionEvent e) {
                //reload();
            }
        });
        
        toolBar.add(new AbstractAction("Enviar cambios") {
            public void actionPerformed(ActionEvent e) {
                //insertInBaseDatos();
            }
        });
           
           panel2.add(toolBar);
          
           buttonFilter.addActionListener(new ActionListener() {
                 public void actionPerformed(ActionEvent e) {
                     filtering = true;
                   String text = filterText.getText();
                   if (text.length() == 0) {
                     sorter.setRowFilter(null);
                   } else {
                     try {
                       sorter.setRowFilter(
                           RowFilter.regexFilter(text));
                       filtering = false;
                     } catch (PatternSyntaxException pse) {
                       System.err.println("Bad regex pattern");
                       filtering = false;
                     }
                   }
                 }
               });

         
            
           
            
           
           
           table.setRowSorter(sorter);
           int[] vsize=vtablemodelperso.getSizecol();
           int tailletot=0;
           
           for (int i=0;i<vsize.length;i++)
           {
               table.getColumnModel().getColumn(i).setPreferredWidth(vsize[i]);
               if (vsize[i]==0) {table.getColumnModel().getColumn(i).setMinWidth(vsize[i]);table.getColumnModel().getColumn(i).setMaxWidth(vsize[i]);}
               tailletot=tailletot+vsize[i];
           }
           vtablemodelperso.addEcouteur(table);
           table.setPreferredScrollableViewportSize(new Dimension(tailletot+500, 150));
           JScrollPane avecAsc = new JScrollPane(table);
           avecAsc.setSize(500, 500);
           jLabel1 = new javax.swing.JLabel();
           jLabel1.setBackground(new java.awt.Color(255, 255, 51));
           jLabel1.setText("Double clic sur une colonne pour trier la table");
           jLabel1.setOpaque(true);
           jLabel1.setName("TITRE");
           jLabel1.setPreferredSize(new java.awt.Dimension(55, 20));
           aj1 = new javax.swing.JButton();
           aj1.setBackground(new java.awt.Color(255, 255, 51));
           aj1.setText("Añadir linea");
           aj1.setPreferredSize(new java.awt.Dimension(150, 25));
           aj2 = new javax.swing.JButton();
           aj2.setBackground(new java.awt.Color(255, 255, 51));
           aj2.setText("Borrar linea");
           aj2.setPreferredSize(new java.awt.Dimension(150, 25));
           if (filtering == true)
           {
               aj2.setEnabled(false);
           }
           //add(jLabel1);
           add(avecAsc,BorderLayout.CENTER);
           table.addMouseListener(new java.awt.event.MouseAdapter() {
               public void mouseClicked(java.awt.event.MouseEvent evt) {
                   posilig=(table.rowAtPoint(evt.getPoint()));
               }
           });
           
          if (!vtablemodelperso.isTypeselection() & ajoutsupp!=0){
               // add(aj1,BorderLayout.SOUTH);
             aj1.addMouseListener(new java.awt.event.MouseAdapter() {
                 public void mouseClicked(java.awt.event.MouseEvent evt) {
                     tt.addligne();
              }});
             
             //add(aj2,BorderLayout.SOUTH);
             
             aj2.addMouseListener(new java.awt.event.MouseAdapter() {
                 
                 public void mouseClicked(java.awt.event.MouseEvent evt) {
                 if (tt.getDonnees().length==0)
                 {
                     JOptionPane d = new JOptionPane();
                     d.showMessageDialog( d.getParent(),"No linea!","Error!",JOptionPane.ERROR_MESSAGE);
                 return;
                }
                 
                 table.changeSelection(posilig,0,false,false);
                 
                 for (int k=0;k<tt.getColumnCount();k++)
                 {
                     table.changeSelection(posilig,k,false,true);
                 }
                 tt.suppligne(posilig);
             }});
             add(panel2,BorderLayout.NORTH);
         }
         }
       
         public void tableChanged(TableModelEvent e)
         {
         }
         
         public void affiche( JFrame j,String vtitre)
         {
             final JFrame v=j;
            if (monCadre == null){
               monCadre = new JFrame();
            }
             //monCadre.setSize(400, 400);
             monCadre.setTitle(vtitre);
             monCadre.setContentPane(this);
             monCadre.addWindowListener(new WindowAdapter()
             {
             public void windowClosing(WindowEvent evt)
             {
                 //v.setVisible(false);
                 }
            });
                 //Insets insets = monCadre.getInsets();
                monCadre.setSize(300, 300);
                // java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
                monCadre.setBounds(300, 300, 500, 300);
                 monCadre.pack();
                 monCadre.setVisible(true);
             }
            
             public Point getLocation() {
                 Point retValue;
                 retValue = super.getLocation();
                 System.out.println(retValue);
                 return retValue;
             }
             public String[] getNomsColonnes() {
         return nomsColonnes;
    }
 } 

Permalink: http://codedumper.com/oxevi