/** * Constructor de la clase, crea la tabla y de da todas las propiedades para mostrarla en la * aplicacion. */ public PanelHojaCalculo() { modelo = new ModeloTabla(); columnasTabla = new ModeloColumnasTabla(); tabla = new JTable(modelo, columnasTabla); tablaAux = new JTable(modelo, filasTabla); tabla.createDefaultColumnsFromModel(); tablaAux.createDefaultColumnsFromModel(); tabla.setColumnSelectionAllowed(true); tabla.setRowSelectionAllowed(true); tablaAux.setSelectionModel(tabla.getSelectionModel()); tablaAux.setMaximumSize(new Dimension(40, 10000)); tablaAux.setBackground(new Color(238, 238, 238)); // Se puede pasar a true si se quiere seleccionar las filas tablaAux.setEnabled(false); tablaAux.setColumnSelectionAllowed(false); tablaAux.setCellSelectionEnabled(false); viewPort = new JViewport(); viewPort.setView(tablaAux); viewPort.setPreferredSize(tablaAux.getMaximumSize()); tabla.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); tablaAux.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); scrollPane = new JScrollPane(tabla); scrollPane.setRowHeader(viewPort); scrollPane.setPreferredSize(new Dimension(790, 500)); add(scrollPane); }
public FixedColumnExample() { super("Fixed Column Example"); setSize(400, 150); data = new Object[][] { {"1", "11", "A", "", "", "", "", ""}, {"2", "22", "", "B", "", "", "", ""}, {"3", "33", "", "", "C", "", "", ""}, {"4", "44", "", "", "", "D", "", ""}, {"5", "55", "", "", "", "", "E", ""}, {"6", "66", "", "", "", "", "", "F"} }; column = new Object[] {"fixed 1", "fixed 2", "a", "b", "c", "d", "e", "f"}; AbstractTableModel fixedModel = new AbstractTableModel() { public int getColumnCount() { return 2; } public int getRowCount() { return data.length; } public String getColumnName(int col) { return (String) column[col]; } public Object getValueAt(int row, int col) { return data[row][col]; } }; AbstractTableModel model = new AbstractTableModel() { public int getColumnCount() { return column.length - 2; } public int getRowCount() { return data.length; } public String getColumnName(int col) { return (String) column[col + 2]; } public Object getValueAt(int row, int col) { return data[row][col + 2]; } public void setValueAt(Object obj, int row, int col) { data[row][col + 2] = obj; } public boolean CellEditable(int row, int col) { return true; } }; fixedTable = new JTable(fixedModel) { public void valueChanged(ListSelectionEvent e) { super.valueChanged(e); checkSelection(true); } }; table = new JTable(model) { public void valueChanged(ListSelectionEvent e) { super.valueChanged(e); checkSelection(false); } }; fixedTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); fixedTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); JScrollPane scroll = new JScrollPane(table); JViewport viewport = new JViewport(); viewport.setView(fixedTable); viewport.setPreferredSize(fixedTable.getPreferredSize()); scroll.setRowHeaderView(viewport); scroll.setCorner(JScrollPane.UPPER_LEFT_CORNER, fixedTable.getTableHeader()); getContentPane().add(scroll, BorderLayout.CENTER); }