Pages

comment fixer une colonne dans un Jtable sujet

mercredi 29 janvier 2014




Je recherche le moyen de fixer dans mon JTable de pixel la colonne en jaune pour avec le JScrollPane que je peux déplacer.
J'ai mis en pièce jointe ma capture de mon tableau que j'ai.

Voici le code que je fais:


Code:


public  Table6(int value[][]){
  JFrame frame = new JFrame("Table Pixel");
  JPanel panel = new JPanel();

  int h = value.length;
  int w = value[0].length;

 
  String[] col = new String[h+1];
String col1[] = new String[1];
  col1[0] =String.valueOf("");
 
    String[] rows = new String[w];
      String[] rows2 = new String[w];

  for (int i = 0; i<h; i++){
 
          col[0] =String.valueOf("");
    col[i+1] = String.valueOf(i);//columns
             
  }

  for (int i =0; i<w;i++) {
      rows[i] = String.valueOf(i);//Rows
  }


  for (int i =0; i<w;i++) {
      rows2[i] = String.valueOf(i);//Rows
  }
 
 

  //Transformation matrice
  String[][] value2 = new String[w][6];
  int i =0;
  while(i<w){
  value2[i][5]= rows[i];
    i++;
  }

  //Translate value
      String[][] value3 = new String[w+1][h+1];
      for (int x =0; x<h; x++){
    for (int y=0; y<w;y++){
        value3[x][y+1]= String.valueOf(value[x][y]);
        value3[x][0] = rows[x];
       
    }
      }
  String[][] value4 = new String[w+1][1];
    for (int x =0; x<w; x++){

                value4[x][0] = rows2[x];
       
   
      }
     
     
     
        DefaultTableModel dtm = new DefaultTableModel(value3,col);
        JTable table=new JTable(dtm)
            {
            public Component prepareRenderer(TableCellRenderer renderer, int row, int column)
                {
                Component component = super.prepareRenderer(renderer,row,column);

                if(column == 0)
                    {
                    component.setBackground(Color.yellow);
                }
                if(column !=0)
                    {
                    component.setBackground(Color.white);
                }
                return component;
            }
        };
   
        // DefaultTableModel dtm2 = new DefaultTableModel(, col1);
          DefaultTableModel dtm2 = new DefaultTableModel(value4,col1);
                  JTable table2 = new JTable(dtm2){
            public Component prepareRenderer(TableCellRenderer renderer, int row, int column)
                {
                Component component = super.prepareRenderer(renderer,row,column);

                if(column == 0)
                    {
                    component.setBackground(Color.yellow);
                }
                if(column !=0)
                    {
                    component.setBackground(Color.white);
                }
                return component;
            }
        };
               
     
     
  JTableHeader header2 = table2.getTableHeader();
  header2.setBackground(Color.yellow);
    table2.getColumn("").setPreferredWidth(50);
  table2.getTableHeader().setReorderingAllowed(false);//lock colonne
  table2.getTableHeader().setResizingAllowed(false);     
       
  table.getTableHeader().setReorderingAllowed(false);//lock colonne
  table.getTableHeader().setResizingAllowed(false);
 
  JTableHeader header = table.getTableHeader();
  header.setBackground(Color.yellow);
  JScrollPane pane = new JScrollPane();
  pane.setViewportView(table);
 
 
 
  table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

  panel.add(pane);
  frame.add(panel);
  frame.setSize(500,500);
  frame.setUndecorated(true);
  frame.getRootPane().setWindowDecorationStyle(JRootPane.PLAIN_DIALOG);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.setVisible(true);

    }


Merci d'avance de vos aides,












Images attachées





Type de fichier : jpg Image 1.jpg (166,9 Ko)










Aucun commentaire:

Enregistrer un commentaire