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 :

Rotation d'une JTable


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 167
    Par défaut Rotation d'une JTable
    Bonjour a tous...
    J'aimerais retourner ma JTable, de manière a avoir les headers sur les lignes, et non plus sur les colonnes...est-ce possible simplement?
    Merci d'avance...

  2. #2
    Membre émérite
    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
    Par défaut
    bonjour tomcat

    il y a longtemp quelqu'un avais demander comment mettre des numero pour les ligne d'un JTextArea. j'avait poster un code. regarde si tu le retrouve (si c'est pas deja supprimer) parce que pour les JTable tu peut faire la meme chose de la meme maniere.
    parce que le truc c'est qu'on travaille pas sur le TextArea ni sur la JTable mais sur le JScrollPane dans lequel ils sont :-)

    voila un rapide code (vraiment rapide et pas beaucoup propre) qui fait ce que tu veut.

    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
    58
     
    package others.tmp3;
     
    import javax.swing.JTable;
    import javax.swing.JScrollPane;
    import javax.swing.JList;
    import javax.swing.JFrame;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.EventQueue;
     
    /**
     * Created by IntelliJ IDEA.
     * User: bebe
     */
    public class MyTableWithRowHeaders extends JFrame {
     
        private JScrollPane myScrollPane = null;
        private JTable myTable = null;
        private JList myRowHeader = null;
     
        public MyTableWithRowHeaders() {
            super("MyTableWithRowHeaders");
     
            myTable = new JTable(new MyTableModel());
     
            myRowHeader = new JList(new TableListRowHeaderModel(myTable));
            myRowHeader.setBackground(myScrollPane.getBackground());
            myRowHeader.setFixedCellWidth(30);
            myRowHeader.setFixedCellHeight(myTable.getRowHeight());
            myRowHeader.setCellRenderer(new MyRowHeaderRenderer(myTable));
     
            myRowHeader.addMouseListener(new MouseAdapter() {
                public void mouseClicked(MouseEvent e) {
                    int index = myRowHeader.locationToIndex(e.getPoint());
                    myTable.setRowSelectionInterval(index, index);
                    myTable.setColumnSelectionInterval(0, 0);
                    myTable.requestFocus();
                }
            });
     
            myScrollPane = new JScrollPane(myTable);
            myScrollPane.setRowHeaderView(myRowHeader);
            add(myScrollPane);
        }
     
        public static void main(String[] args) {
            EventQueue.invokeLater(new Runnable() {
                public void run() {
                    MyTableWithRowHeaders frame = new MyTableWithRowHeaders();
                    frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
                    frame.pack();
                    frame.setLocationRelativeTo(null);
                    frame.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
    57
    58
     
    package others.tmp3;
     
    import javax.swing.table.TableModel;
    import javax.swing.event.TableModelListener;
     
    /**
     * Created by IntelliJ IDEA.
     * User: bebe
     */
    public class MyTableModel implements TableModel {
     
        private Class[] classNames = new Class[]{Boolean.class, String.class};
        private Object[][] myModel = new Object[][]{
                {true, "JTable"}, {true, "is"}, {true, "cooooool!"},
                {true, "JTable"}, {true, "is"}, {true, "cooooool!"},
                {true, "JTable"}, {true, "is"}, {true, "cooooool!"},
                {true, "JTable"}, {true, "is"}, {true, "cooooool!"},
        };
     
        public int getRowCount() {
            return myModel.length;  //To change body of implemented methods use File | Settings | File Templates.
        }
     
        public int getColumnCount() {
            return myModel[0].length;  //To change body of implemented methods use File | Settings | File Templates.
        }
     
        public String getColumnName(int columnIndex) {
            return "" + (columnIndex + 1);
        }
     
        public Class<?> getColumnClass(int columnIndex) {
            return classNames[columnIndex];  //To change body of implemented methods use File | Settings | File Templates.
        }
     
        public boolean isCellEditable(int rowIndex, int columnIndex) {
            return columnIndex == 0;  //To change body of implemented methods use File | Settings | File Templates.
        }
     
        public Object getValueAt(int rowIndex, int columnIndex) {
            return myModel[rowIndex][columnIndex];  //To change body of implemented methods use File | Settings | File Templates.
        }
     
        public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
            myModel[rowIndex][columnIndex] = aValue; //To change body of implemented methods use File | Settings | File Templates.
        }
     
        /* not implemented */
        public void addTableModelListener(TableModelListener l) {
            //To change body of implemented methods use File | Settings | File Templates.
        }
     
        /* not implemented */
        public void removeTableModelListener(TableModelListener l) {
            //To change body of implemented methods use File | Settings | File Templates.
        }
    }

    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
     
    package others.tmp3;
     
    import javax.swing.table.JTableHeader;
    import javax.swing.ListCellRenderer;
    import javax.swing.JTable;
    import javax.swing.UIManager;
    import javax.swing.JList;
    import javax.swing.JLabel;
    import java.awt.Component;
     
    /**
     * Created by IntelliJ IDEA.
     * User: bebe
     */
    public class MyRowHeaderRenderer extends JLabel implements ListCellRenderer {
     
        public MyRowHeaderRenderer(JTable table) {
            JTableHeader header = table.getTableHeader();
            setOpaque(true);
            setBorder(UIManager.getBorder("TableHeader.cellBorder"));
            setHorizontalAlignment(CENTER);
            setForeground(header.getForeground());
            setBackground(header.getBackground());
            setFont(header.getFont());
        }
     
        public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
            if (value == null) {
                setText("");
            } else {
                setText(value.toString());
            }
            return this;
        }
    }

    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
     
    package others.tmp3;
     
    import javax.swing.AbstractListModel;
    import javax.swing.JTable;
     
    /**
     * Created by IntelliJ IDEA.
     * User: bebe
     */
    public class TableListRowHeaderModel extends AbstractListModel {
        private JTable table = null;
     
        public TableListRowHeaderModel(JTable table) {
            this.table = table;
        }
     
        public int getSize() {
            return table.getRowCount();
        }
     
        public Object getElementAt(int index) {
            return "" + (index + 1);
        }
    }

  3. #3
    Membre émérite
    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

Discussions similaires

  1. [Swing] Afficher une JTable speciale en java
    Par benssj5 dans le forum Composants
    Réponses: 6
    Dernier message: 12/03/2013, 20h21
  2. focus dans une cellule d'une JTable
    Par coil dans le forum Composants
    Réponses: 5
    Dernier message: 07/07/2010, 17h15
  3. [JTable] coloration des lignes d'une JTable
    Par MathiasM dans le forum Composants
    Réponses: 3
    Dernier message: 22/06/2009, 10h19
  4. Rotation d une sphere
    Par venomelektro dans le forum DirectX
    Réponses: 4
    Dernier message: 23/01/2005, 23h28
  5. Non réception d'un evènement sur une JTable
    Par Kant dans le forum Composants
    Réponses: 4
    Dernier message: 28/05/2004, 10h38

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