Tip: Click lines to highlight, hold ctrl/cmd to multi-select
http://codedumper.com/inaca (21-Jul @ 13:45)
Syntax Highlighted Code
- package components;
- import javax.swing.*;
- import javax.swing.table.TableModel;
- import javax.swing.event.*;
- import java.awt.Dimension;
- import java.awt.event.*;
- import javax.swing.table.DefaultTableColumnModel;
- import javax.swing.table.AbstractTableModel;
- import javax.swing.table.TableRowSorter;
- import java.awt.*;
- import java.util.regex.PatternSyntaxException;
- import javax.swing.JButton;
- import javax.swing.table.DefaultTableModel;
- {
- public boolean filtering=false;
- private JTable table;
- private TableModel tableur;
- private int[] vsize;
- private TableModelPerso tt;
- private int ajoutsupp;
- private int posilig;
- private TableRowSorter<TableModel> sorter;
- public JFrame monCadre;
- public JTextField filterText =
- public Tableur(TableModelPerso vtablemodelperso,int vajoutsupp)
- {
- tt=vtablemodelperso;
- ajoutsupp=vajoutsupp;
- table.setColumnSelectionAllowed(true);
- table.setRowSelectionAllowed(true);
- //table.setPreferredScrollableViewportSize(table.getPreferredSize());
- table.setRowSelectionAllowed(true);
- table.setColumnSelectionAllowed(false);
- sorter = new TableRowSorter<TableModel>(tt);
- panel2.setLayout(flow);
- panel2.add(label);
- panel2.add(filterText);
- panel2.add(buttonFilter);
- toolBar.setFloatable(false);
- sorter.setRowFilter(null);
- tt.addligne();
- }
- });
- //sorter.setRowFilter(null);
- if (tt.getDonnees().length==0)
- {
- return;
- }
- int test =0;
- //sorter.setRowFilter(null);
- //table.changeSelection(posilig,0,false,false);
- test = idSup.intValue();
- // int nbColumn = tt.getColumnCount();
- for (int k=0;k<tt.getRowCount();k++)
- {
- if (idSup.intValue() == test)
- {
- sorter.setRowFilter(null);
- tt.suppligne(k);
- }
- }
- }
- });
- //toolBar.add(theRemoveRowAction);
- //reload();
- }
- });
- //insertInBaseDatos();
- }
- });
- panel2.add(toolBar);
- filtering = true;
- if (text.length() == 0) {
- sorter.setRowFilter(null);
- } else {
- try {
- sorter.setRowFilter(
- RowFilter.regexFilter(text));
- filtering = false;
- } catch (PatternSyntaxException pse) {
- 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);
- avecAsc.setSize(500, 500);
- jLabel1.setText("Double clic sur une colonne pour trier la table");
- jLabel1.setOpaque(true);
- jLabel1.setName("TITRE");
- aj1.setText("AƱadir linea");
- aj2.setText("Borrar linea");
- if (filtering == true)
- {
- aj2.setEnabled(false);
- }
- //add(jLabel1);
- posilig=(table.rowAtPoint(evt.getPoint()));
- }
- });
- if (!vtablemodelperso.isTypeselection() & ajoutsupp!=0){
- // add(aj1,BorderLayout.SOUTH);
- tt.addligne();
- }});
- //add(aj2,BorderLayout.SOUTH);
- if (tt.getDonnees().length==0)
- {
- return;
- }
- table.changeSelection(posilig,0,false,false);
- for (int k=0;k<tt.getColumnCount();k++)
- {
- table.changeSelection(posilig,k,false,true);
- }
- tt.suppligne(posilig);
- }});
- }
- }
- {
- }
- {
- final JFrame v=j;
- if (monCadre == null){
- }
- //monCadre.setSize(400, 400);
- monCadre.setTitle(vtitre);
- monCadre.setContentPane(this);
- {
- {
- //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);
- }
- Point retValue;
- retValue = super.getLocation();
- return retValue;
- }
- return nomsColonnes;
- }
- }
Plain Code
package components;
import javax.swing.*;
import javax.swing.table.TableModel;
import javax.swing.event.*;
import java.awt.Dimension;
import java.awt.event.*;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableRowSorter;
import java.awt.*;
import java.util.regex.PatternSyntaxException;
import javax.swing.JButton;
import javax.swing.table.DefaultTableModel;
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;
}
}