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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| public class PanelInventaire extends JPanel{
private JTable tableArme;
private String [] nomsColArmes = {"Nom de l'arme", "Dégats", "Maniablité"};
private String [][] dataArmes = {{"test","test2","test3"},{"gre","greqgre","resg"}};
private JTable tableArmure;
private String [] nomsColArmures = {"Nom de l'armure", "Défense", "Encombrement", "Solidité"};
private String [][] dataArmures = {{""}};
public PanelInventaire (){
super();
init();
}
private void init(){
JPanel pan = new JPanel(new GridLayout(1,2));
JPanel panArme=new JPanel(new BorderLayout());
JPanel panArmure= new JPanel(new BorderLayout());
panArme.setBorder(BorderFactory.createTitledBorder("Armes"));
DefaultTableModel modelArmes = new DefaultTableModel (dataArmes, nomsColArmes);
tableArme = new JTable(modelArmes);
panArmure.setBorder(BorderFactory.createTitledBorder("Armures"));
DefaultTableModel modelArmures = new DefaultTableModel (dataArmures, nomsColArmures);
tableArmure = new JTable(modelArmures);
JScrollPane conteneurArme = new JScrollPane(tableArme);
JScrollPane conteneurArmure = new JScrollPane(tableArmure);
this.add(pan);
pan.add(panArme);
pan.add(panArmure);
panArme.add(conteneurArme);
panArmure.add(conteneurArmure);
ajustement(tableArmure);
ajustement(tableArme);
}
private void ajustement(JTable table) {
int col = 0, droiteMax = 0, larg = 0, largTotal = 0,
row = 0, tableX = 0, width = 0;
JTableHeader header = table.getTableHeader();
Enumeration columns = table.getColumnModel().getColumns();
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
while(columns.hasMoreElements()){ // longueur maximum du texte ou du titre d'une colonne
TableColumn column = (TableColumn)columns.nextElement();
col = header.getColumnModel().getColumnIndex(column.getIdentifier());
width = (int)table.getTableHeader().getDefaultRenderer()
.getTableCellRendererComponent(table, column.getIdentifier()
, false, false, -1, col).getPreferredSize().getWidth();
for(row = 0; row<table.getRowCount(); row++){
int preferedWidth =
(int)table.getCellRenderer(row, col).getTableCellRendererComponent(table,
table.getValueAt(row, col), false, false, row, col).getPreferredSize().getWidth();
width = Math.max(width, preferedWidth);
}
header.setResizingColumn(column); // this line is very important
larg = width+table.getIntercellSpacing().width;
// larg = (larg*13)/10; // largeur de la colonne plus un peu pour desserrer
larg = larg+20; // mais c'est mieux un ajout fixe, pas en %,
// par ex. un blanc devant et derrière chaque donnée avant de l'écrire
largTotal += larg; // largeur totale de la table si utile
column.setWidth(larg);
}
}
} |
Partager