Petit problème d'affichage du titre d'un tableau(Jtable)

Résolu
cs_limalima Messages postés 124 Date d'inscription dimanche 31 août 2008 Statut Membre Dernière intervention 16 décembre 2010 - 22 oct. 2008 à 13:09
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 22 oct. 2008 à 15:01
Bonjour à tous c'est encore moi!, j'éspère que je vous ennuie pas à vous poser des quesions tout le temps!,
voilà regardez mon code qui doit afficher un tableau AVEC SON TITRE, mais le titre ne s'affiche pas!

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.LayoutManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;


import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;


public class Formulaire extends JFrame  {
 
 
 JLabel label=new JLabel("resultat:");
 Object[][] donnees = { 
        {"Swing", "Astral", "standard", Color.red, Boolean.TRUE},
        {"Swing", "Mistral", "standard", Color.yellow, Boolean.FALSE},
        {"Gin", "Oasis", "standard", Color.blue, Boolean.FALSE},
        {"Gin", "boomerang", "compétition", Color.green, Boolean.TRUE},
        {"Advance", "Omega", "performance", Color.cyan, Boolean.TRUE},
  } ;
 Object[] titreColonnes = { "marque","modèle", "homologation",
                             "couleur", "vérifiée ?"};
  JTable jTable1 = new JTable(donnees, titreColonnes);
 
 
public Formulaire(){
 
 this.setTitle("Dessin");
    this.setSize(600, 300);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setLocationRelativeTo(null);
    this.setLayout(new FlowLayout());
    this.setLayout(new FlowLayout(FlowLayout.LEFT));
    this.add(label);
    this.add(jTable1);
    this.setVisible(true);
}


public static void main(String[]argg){
new Formulaire();
 
}


}
le résultat est:


               Swing,
Astral,
standard,
java.awt.Color[r=255,g=0,b=0]   ,
true,

----

               Swing,
Mistral,
standard,
java.awt.Color[r=255,g=255,b=0],
false,

----

resultat:   Gin,
Oasis,
standard,
java.awt.Color[r=0,g=0,b=255],
false,

----

               Gin,
boomerang,
compétition,
java.awt.Color[r=0,g=255,b=0],
true,

----

               Advance,
Omega,
performance,
java.awt.Color[r=0,g=255,b=255],
true
donc le titre ne s'affiche pas et les couleurs aussi.
merci de m'aider

4 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
22 oct. 2008 à 14:03
Salut:

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.LayoutManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException; import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class Formulaire extends JFrame  {
 
 JLabel label=new JLabel("resultat:");
 Object[][] donnees = { 
        {"Swing", "Astral", "standard", Color.red, Boolean.TRUE},
        {"Swing", "Mistral", "standard", Color.yellow, Boolean.FALSE},
        {"Gin", "Oasis", "standard", Color.blue, Boolean.FALSE},
        {"Gin", "boomerang", "compétition", Color.green, Boolean.TRUE},
        {"Advance", "Omega", "performance", Color.cyan, Boolean.TRUE},
  } ;
 Object[] titreColonnes = { "marque","modèle", "homologation",
                             "couleur", "vérifiée ?"};
  JTable jTable1 = new JTable(donnees, titreColonnes);
 
 
public Formulaire(){
 
 this.setTitle("Dessin");
    this.setSize(600, 300);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setLocationRelativeTo(null);
    this.setLayout(new FlowLayout());
    this.setLayout(new FlowLayout(FlowLayout.LEFT));
    this.add(label);
    this.add(new JScrollPane(jTable1));
    this.setVisible(true);
}

public static void main(String[]argg){
    new Formulaire();
 }

}
3
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
22 oct. 2008 à 14:24
Salut:

import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.border.TitledBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;

/**
 * @author A.B.
 *
 */
public class Form extends JFrame {
   
    Object[][] data = {
            { "Swing", "Astral", "standard", Color.red, Boolean.TRUE },
            { "Swing", "Mistral", "standard", Color.yellow, Boolean.FALSE },
            { "Gin", "Oasis", "standard", Color.blue, Boolean.FALSE },
            { "Gin", "boomerang", "compétition", Color.green, Boolean.TRUE },
            { "Advance", "Omega", "performance", Color.cyan, Boolean.TRUE }, };
    Object[] titreColonnes = { "Marque", "Modèle", "Homologation", "Couleur",
            "Vérifiée" };
    JTable table = null;

    public Form() {
        setTitle("Dessin");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
       
        table = new JTable(new CustomTableModel(data, titreColonnes));
        table.getColumn("Couleur").setCellRenderer(new ColorCellRenderer());
       
        JScrollPane scrollPane = new JScrollPane(table);
        scrollPane.setBorder(new TitledBorder("Table"));
        scrollPane.setPreferredSize(new Dimension(600, 400));
       
        add(new JScrollPane(scrollPane));
        pack();
    }

    public static void main(String[] argg) {
        Form form = new Form();
        form.setVisible(true);
    }
}

class ColorCellRenderer implements TableCellRenderer {
   
    public Component getTableCellRendererComponent(JTable table, Object value,
            boolean isSelected, boolean hasFocus, int row, int column) {
        JLabel label = new JLabel();
        label.setOpaque(true);
        if (value instanceof Color) {
            label.setBackground((Color) value);
        }
        return label;
    }
}

class CustomTableModel extends DefaultTableModel {
   
    public CustomTableModel() {
    }
   
    public CustomTableModel(Object[][] data, Object[] columnNames) {
        super(data, columnNames);
    }
   
    @Override
    public Class<?> getColumnClass(int columnIndex) {
        Object value = getValueAt(0, columnIndex);
        if (value != null) {
            return getValueAt(0, columnIndex).getClass();
        } else {
            return super.getColumnClass(columnIndex);
        }
    }
}
3
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
22 oct. 2008 à 14:26
Salut:

class CustomTableModel extends DefaultTableModel {
   
    public CustomTableModel() {
    }
   
    public CustomTableModel(Object[][] data, Object[] columnNames) {
        super(data, columnNames);
    }
   
    @Override
    public Class<?> getColumnClass(int columnIndex) {
        Object value = getValueAt(0, columnIndex);
        if (value != null) {
            return value.getClass();
        } else {
            return super.getColumnClass(columnIndex);
        }
    }
}
3
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
22 oct. 2008 à 15:01
Salut:

Petite correction:

    public Form() {
        setTitle("Dessin");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
       
        table = new JTable(new CustomTableModel(data, titreColonnes));
        table.getColumn("Couleur").setCellRenderer(new ColorCellRenderer());
       
        JScrollPane scrollPane = new JScrollPane(table);
        scrollPane.setBorder(new TitledBorder("Table"));
        scrollPane.setPreferredSize(new Dimension(600, 400));
       
        add(scrollPane);
        pack();
    }
3
Rejoignez-nous