- import java.awt.*;
- import java.awt.event.*;
- import javax.swing.*;
- import javax.swing.table.*;
-
- /**
- * @author ludo
- *
- */
- public class FrmTable extends JFrame
- {
- JTable tblProcess = null;
-
- public FrmTable()
- {
- super( "exemple de table" );
- setBounds( 100, 100, 500, 500 );
- JTable lst = new JTable();
- TableModelNoEditable tmne = new TableModelNoEditable();
- tblProcess = new JTable();
- tblProcess.setModel( tmne );
- {
- tmne.addColumn( "Nom" );
- tmne.addColumn( "Créateur\nludo" );
- tmne.addColumn( "Type\npas bo" );
- tmne.addColumn( "Etat" );
- Object[] vals = { "ma game", "moi", "Othello", "demarrer" };
- tmne.addRow( vals );
- tmne.addRow( vals );
- tmne.addRow( vals );
- }
-
- TableCellRenderer tbc = getTableCellRenderer();
- TableCellRenderer tbch = getTableHeaderRenderer();
- tblProcess.getTableHeader().setReorderingAllowed( false );
- /////////////////////////////////////////////////////////
- // lignes a metre en comment pour retrouver le comportement de la table par defau
- for (int i = 0; i < tmne.getColumnCount(); i++)
- {
- TableColumn tc = tblProcess.getColumnModel().getColumn( i );
- tc.setCellRenderer( tbc );
- tc.setHeaderRenderer( tbch );
- }
- //////////////////////////////////////////////////////////
-
- JScrollPane sclp = new JScrollPane();
- sclp.getViewport().add( tblProcess );
- addWindowListener(new WindowAdapter(){
- public void windowClosing(WindowEvent e)
- {
- super.windowClosing(e);
- System.exit( 0 );
- }
- });
- getContentPane().setLayout( new BorderLayout() );
- getContentPane().add( sclp, BorderLayout.CENTER );
- }
-
- public static void main(String[] args)
- {
- new FrmTable().setVisible( true );
- }
-
- // permet de controler la possibilieter dedition
- // de n importe kel cellule : la on interdit tout
- class TableModelNoEditable extends DefaultTableModel
- { public boolean isCellEditable(int row, int col) { return false;} }
-
- private static TableCellRenderer label = null;
- public static TableCellRenderer getTableCellRenderer()
- {
- if ( label == null )
- label = new TableGameRenderer();
- return label;
- }
-
- static class TableGameRenderer extends JLabel implements TableCellRenderer
- {
- public Component getTableCellRendererComponent(
- JTable table,
- Object value,
- boolean isSelected,
- boolean hasFocus,
- int row,
- int column)
- {
- setForeground(Color.black);
- Font font = table.getFont();
- setOpaque(true);
- if (isSelected)
- font = new Font(font.getName(), Font.BOLD | Font.ITALIC, font.getSize());
- else
- font = new Font(font.getName(), Font.PLAIN, font.getSize());
- setFont(font);
- setHorizontalAlignment(JLabel.CENTER);
- setText((String) value);
- return this;
- }
- }
-
- public static TableCellRenderer getTableHeaderRenderer()
- {
- return new TableCellRenderer()
- {
- public Component getTableCellRendererComponent(
- JTable table,
- Object value,
- boolean isSelected,
- boolean hasFocus,
- int row,
- int column)
- {
- // JLabel lbl = new JLabel();
- JTextArea lbl = new JTextArea()
- {
- // methode a redefinir pour modifier l aspect de la cellule
- public void paint( Graphics g )
- {
- super.paint( g );
- }
- };
- // lbl.setHorizontalAlignment( JLabel.CENTER );
- Font font = table.getFont();
- lbl.setOpaque( true );
- font = new Font( font.getName(), Font.BOLD, font.getSize() + 2 );
- lbl.setFont( font );
- lbl.setForeground( Color.black );
- lbl.setText( (String)value );
- return lbl;
- }
- };
- }
- }
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
/**
* @author ludo
*
*/
public class FrmTable extends JFrame
{
JTable tblProcess = null;
public FrmTable()
{
super( "exemple de table" );
setBounds( 100, 100, 500, 500 );
JTable lst = new JTable();
TableModelNoEditable tmne = new TableModelNoEditable();
tblProcess = new JTable();
tblProcess.setModel( tmne );
{
tmne.addColumn( "Nom" );
tmne.addColumn( "Créateur\nludo" );
tmne.addColumn( "Type\npas bo" );
tmne.addColumn( "Etat" );
Object[] vals = { "ma game", "moi", "Othello", "demarrer" };
tmne.addRow( vals );
tmne.addRow( vals );
tmne.addRow( vals );
}
TableCellRenderer tbc = getTableCellRenderer();
TableCellRenderer tbch = getTableHeaderRenderer();
tblProcess.getTableHeader().setReorderingAllowed( false );
/////////////////////////////////////////////////////////
// lignes a metre en comment pour retrouver le comportement de la table par defau
for (int i = 0; i < tmne.getColumnCount(); i++)
{
TableColumn tc = tblProcess.getColumnModel().getColumn( i );
tc.setCellRenderer( tbc );
tc.setHeaderRenderer( tbch );
}
//////////////////////////////////////////////////////////
JScrollPane sclp = new JScrollPane();
sclp.getViewport().add( tblProcess );
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
super.windowClosing(e);
System.exit( 0 );
}
});
getContentPane().setLayout( new BorderLayout() );
getContentPane().add( sclp, BorderLayout.CENTER );
}
public static void main(String[] args)
{
new FrmTable().setVisible( true );
}
// permet de controler la possibilieter dedition
// de n importe kel cellule : la on interdit tout
class TableModelNoEditable extends DefaultTableModel
{ public boolean isCellEditable(int row, int col) { return false;} }
private static TableCellRenderer label = null;
public static TableCellRenderer getTableCellRenderer()
{
if ( label == null )
label = new TableGameRenderer();
return label;
}
static class TableGameRenderer extends JLabel implements TableCellRenderer
{
public Component getTableCellRendererComponent(
JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column)
{
setForeground(Color.black);
Font font = table.getFont();
setOpaque(true);
if (isSelected)
font = new Font(font.getName(), Font.BOLD | Font.ITALIC, font.getSize());
else
font = new Font(font.getName(), Font.PLAIN, font.getSize());
setFont(font);
setHorizontalAlignment(JLabel.CENTER);
setText((String) value);
return this;
}
}
public static TableCellRenderer getTableHeaderRenderer()
{
return new TableCellRenderer()
{
public Component getTableCellRendererComponent(
JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column)
{
// JLabel lbl = new JLabel();
JTextArea lbl = new JTextArea()
{
// methode a redefinir pour modifier l aspect de la cellule
public void paint( Graphics g )
{
super.paint( g );
}
};
// lbl.setHorizontalAlignment( JLabel.CENTER );
Font font = table.getFont();
lbl.setOpaque( true );
font = new Font( font.getName(), Font.BOLD, font.getSize() + 2 );
lbl.setFont( font );
lbl.setForeground( Color.black );
lbl.setText( (String)value );
return lbl;
}
};
}
}