1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
package test;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.table.JTableHeader;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.JScrollPane;
class TestJTable extends JFrame
{
private static final long serialVersionUID = 1L;
private JTable jt;
private JPanel MainPanel = null;
private DefaultTableModel dtm;
int currentSelectedRow = 0;
class UnfocusableRenderer extends javax.swing.table.DefaultTableCellRenderer
{
private static final long serialVersionUID = 1L;
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
Component comp = super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
if(hasFocus) table.changeSelection(row,column+1,false,false);
return comp;
}
}
public TestJTable ()
{
setName("Exemple de Jtable");
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
setSize(454, 422);
MainPanel = new JPanel();
MainPanel.setName("JDialogContentPane");
MainPanel.setLayout(null);
MainPanel.setBackground(new Color(157,224,137));
setContentPane(MainPanel);
JScrollPane pane = new JScrollPane();
pane.setBounds(38, 55, 390, 77);
MainPanel.add(pane);
String[] col = {"Ref.", "Fournisseur", "Prix Unitaire.","Nombre","Livré O/N"};
String [][] data = new String[2][5];
dtm = new DefaultTableModel(data,col);
dtm.setRowCount(0);
dtm.addRow(new Object[]{" 102456 ", " Dupont " , " 25.00 "});
dtm.addRow(new Object[]{" 568742 ", " Lefebvre " , " 12.50 "});
jt = new JTable(dtm)
{
private static final long serialVersionUID = 1L;
public boolean isCellEditable(int row,int col )
{
if (col ==3 | col ==4) return true;
else return false;
}
};
jt.setFont(new Font("Tahoma", Font.PLAIN, 14));
pane.setViewportView(jt);
JTableHeader header = jt.getTableHeader();
header.setBackground(java.awt.Color.yellow);
jt.setRowHeight(27);
jt. setCellSelectionEnabled(true);
for (int i=0;i<3; i++) // on rend les 3 premières colonnes non focussable
{
javax.swing.table.TableColumn tc = jt.getColumnModel().getColumn(i);
tc .setCellRenderer(new UnfocusableRenderer());
}
jt.changeSelection(0, 3, false,false);
jt.editCellAt(0, 3);
this.setLocationRelativeTo(null);
}
public static void main (String[] args)
{
new TestJTable().setVisible(true);
}
} |
Partager