Bonjour,
Dans une JTable, comment justifier à droite les données d'une colonne déclarées en String.class?
Merci.
Bonjour,
Dans une JTable, comment justifier à droite les données d'une colonne déclarées en String.class?
Merci.
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 */ } }chaque ligne de la deuxieme colonne est aligner soit a droite soite a gauche soit au centre.
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. } }
tu peut tout faire avec ton renderer :-))
Partager