IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

JTable justification d'une colonne


Sujet :

Composants Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11
    Points : 12
    Points
    12
    Par défaut JTable justification d'une colonne
    Bonjour,

    Dans une JTable, comment justifier à droite les données d'une colonne déclarées en String.class?

    Merci.

  2. #2
    Membre éclairé
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Points : 704
    Points
    704
    Par défaut
    c'est la meme chose qu'ici:http://www.developpez.net/forums/sho...d.php?t=174377

    aligne ton renderer ou tu veut (et si tu veut que meme quand la cellule est en mode edit elle soit aligner a un endroit tu dois aussi aligner dans ton editeur).

    voila un exemple...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    import java.awt.EventQueue;
    import java.awt.HeadlessException;
     
    import javax.swing.JFrame;
    import javax.swing.JTable;
    import javax.swing.JScrollPane;
    import javax.swing.table.TableColumn;
     
    /**
     * Created by IntelliJ IDEA.
     * User: bebe
     * Date: 01-Jul-2006
     * Time: 10:29:36
     * To change this template use File | Settings | File Templates.
     */
    public class MyTest extends JFrame {
     
        public MyTest(String title) throws HeadlessException {
            super(title);
            JTable myTable = new JTable(new MyTableModel());
     
            TableColumn tc = myTable.getColumnModel().getColumn(1);
            tc.setCellRenderer(new MyTableRenderer());
     
            add(new JScrollPane(myTable));
            setSize(400, 300);
        }
     
        public static void main(String[] args) {
            EventQueue.invokeLater(new Runnable() {
                public void run() {
                    MyTest test = new MyTest("Cell alignment");
                    test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    test.setVisible(true);
                }
            });
        }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    import java.awt.Component;
    import java.awt.Font;
     
    import javax.swing.JLabel;
    import javax.swing.JTable;
    import javax.swing.UIManager;
    import javax.swing.SwingConstants;
    import javax.swing.table.TableCellRenderer;
     
    /**
     * Created by IntelliJ IDEA.
     * User: bebe
     * Date: 01-Jul-2006
     * Time: 10:30:30
     * To change this template use File | Settings | File Templates.
     */
    public class MyTableRenderer extends JLabel implements TableCellRenderer {
     
        public MyTableRenderer() {
            // default's table font is not totally the same as the JLabel's.
            // -> for this renderer use table font :-)
            setFont((Font) UIManager.get("Table.Font"));
     
            setOpaque(false);
        }
     
        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
     
            switch (row % 3) {
                case 0:
                    setHorizontalAlignment(SwingConstants.LEFT);
                    break;
                case 1:
                    setHorizontalAlignment(SwingConstants.CENTER);
                    break;
                case 2:
                    setHorizontalAlignment(SwingConstants.RIGHT);
                    break;
            }
            setText(String.valueOf(value));
     
            return this;  //To change body of implemented methods use File | Settings | File Templates.
        }
     
     
        @Override
        protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
            /* do nothing */
        }
     
        @Override
        public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue) {
            /* do nothing */
        }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    import javax.swing.table.TableModel;
    import javax.swing.event.TableModelListener;
     
    /**
     * Created by IntelliJ IDEA.
     * User: bebe
     * Date: 01-Jul-2006
     * Time: 10:29:58
     * To change this template use File | Settings | File Templates.
     */
    public class MyTableModel implements TableModel {
     
        private Object[][] model = new Object[20][];
     
        public MyTableModel() {
            for (int i = 0; i<20; i++) {
                model[i] = new Object[]{i, "row " + i};
            }
        }
     
        public int getRowCount() {
            return model.length;
        }
     
        public int getColumnCount() {
            return model[0].length;
        }
     
        public String getColumnName(int columnIndex) {
            return "col " + columnIndex;
        }
     
        public Class<?> getColumnClass(int columnIndex) {
            return String.class;
        }
     
        public boolean isCellEditable(int rowIndex, int columnIndex) {
            return true;
        }
     
        public Object getValueAt(int rowIndex, int columnIndex) {
            return model[rowIndex][columnIndex];
        }
     
        public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
            model[rowIndex][columnIndex] = aValue;
        }
     
        public void addTableModelListener(TableModelListener l) {
            //To change body of implemented methods use File | Settings | File Templates.
        }
     
        public void removeTableModelListener(TableModelListener l) {
            //To change body of implemented methods use File | Settings | File Templates.
        }
    }
    chaque ligne de la deuxieme colonne est aligner soit a droite soite a gauche soit au centre.

    tu peut tout faire avec ton renderer :-))

Discussions similaires

  1. [JTable] JButton dans une colonne
    Par COOLZERO3 dans le forum Composants
    Réponses: 13
    Dernier message: 13/05/2009, 18h14
  2. Réponses: 3
    Dernier message: 31/03/2009, 04h59
  3. [JTable] Position d'une colonne de table
    Par Guybrush dans le forum Composants
    Réponses: 8
    Dernier message: 16/07/2008, 16h01
  4. [debutant][JTable] Trier selon une colonne
    Par yupa dans le forum Composants
    Réponses: 3
    Dernier message: 08/08/2005, 11h05
  5. [JTable] sélection d'une colonne
    Par I o dans le forum Composants
    Réponses: 2
    Dernier message: 27/04/2005, 15h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo