@Override public void setModel(final TableModel model) { super.setModel(model); if (model instanceof SortableColumnModel) { final SortableColumnModel sortableModel = (SortableColumnModel) model; if (sortableModel.isSortable()) { final TableRowSorter<TableModel> rowSorter = createRowSorter(model); rowSorter.setSortsOnUpdates(isSortOnUpdates()); setRowSorter(rowSorter); final RowSorter.SortKey sortKey = sortableModel.getDefaultSortKey(); if (sortKey != null && sortKey.getColumn() >= 0 && sortKey.getColumn() < model.getColumnCount()) { if (sortableModel.getColumnInfos()[sortKey.getColumn()].isSortable()) { rowSorter.setSortKeys(Arrays.asList(sortKey)); } } } else { final RowSorter<? extends TableModel> rowSorter = getRowSorter(); if (rowSorter instanceof DefaultColumnInfoBasedRowSorter) { setRowSorter(null); } } } }
public BatchXPDialog(JFrame parent, Campaign campaign) { super(parent, "", true); // $NON-NLS-1$ this.resourceMap = ResourceBundle.getBundle( "mekhq.resources.BatchXPDialog", new EncodeControl()); // $NON-NLS-1$ setTitle(resourceMap.getString("dialogue.title")); // $NON-NLS-1$ choiceNoSkill = resourceMap.getString("skill.choice.text"); // $NON-NLS-1$ this.campaign = Objects.requireNonNull(campaign); this.personnelModel = new PersonnelTableModel(campaign); personnelModel.refreshData(); personnelSorter = new TableRowSorter<PersonnelTableModel>(personnelModel); personnelSorter.setSortsOnUpdates(true); personnelSorter.setComparator(PersonnelTableModel.COL_RANK, new RankSorter(campaign)); personnelSorter.setComparator(PersonnelTableModel.COL_AGE, new FormattedNumberSorter()); personnelSorter.setComparator(PersonnelTableModel.COL_XP, new FormattedNumberSorter()); personnelSorter.setSortKeys(Arrays.asList(new RowSorter.SortKey(1, SortOrder.ASCENDING))); personnelFilter = new PersonnelFilter(); personnelSorter.setRowFilter(personnelFilter); initComponents(); }
/*Constructor sin argumentos*/ public VisVOrds() { /*Inicaliza los componentes gráficos*/ initComponents(); /*Centra la ventana*/ this.setLocationRelativeTo(null); /*La ventana se mostrará maximizada*/ setExtendedState(getExtendedState() | VisVOrds.MAXIMIZED_BOTH); /*Establece el título de la ventana con la estación, la fecha y hora*/ this.setTitle("Visor Tabla, Usuario: <" + Login.sUsrG + "> " + Login.sFLog); /*Cambia el icono de la forma, ya sea el personalizado por el usuario o el de default del sistema*/ if (new File(new java.io.File("").getAbsolutePath() + "\\Logo.jpg").exists()) { setIconImage( Toolkit.getDefaultToolkit() .getImage(new java.io.File("").getAbsolutePath() + "\\Logo.jpg")); } else setIconImage(new ImageIcon(getClass().getResource(Star.sIconDef)).getImage()); /*Para que la tabla este ordenada al mostrarce y al dar clic en el nombre de la columna*/ TableRowSorter trs = new TableRowSorter<>((DefaultTableModel) jTab.getModel()); jTab.setRowSorter(trs); trs.setSortsOnUpdates(true); /*Pon el foco del teclado en la tabla*/ jTab.grabFocus(); /*Establece el tamaño de las columnas de la tabla*/ // jTab.getColumnModel().getColumn(3).setPreferredWidth(500); /*Activa en la tabla que se usen normamente las teclas de tabulador*/ jTab.setFocusTraversalKeys(java.awt.KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, null); jTab.setFocusTraversalKeys(java.awt.KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, null); /*Incializa el contador del cell editor*/ iContCellEd = 1; /*Crea el listener para cuando se cambia de selección en la tabla*/ PropertyChangeListener pro = new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent event) { /*Obtén la propiedad que a sucedio en el control*/ String pr = event.getPropertyName(); /*Si no hay selecciòn entonces regresa*/ if (jTab.getSelectedRow() == -1) return; /*Si el evento fue por entrar en una celda de la tabla*/ if ("tableCellEditor".equals(pr)) { /*Si el contador de cell editor está en 1 entonces que lea el valor original que estaba ya*/ if (iContCellEd == 1) { /*Obtiene todos los datos originales*/ sOrdOri = jTab.getValueAt(jTab.getSelectedRow(), 1).toString(); sProyOri = jTab.getValueAt(jTab.getSelectedRow(), 2).toString(); sProvOri = jTab.getValueAt(jTab.getSelectedRow(), 3).toString(); sImpoOri = jTab.getValueAt(jTab.getSelectedRow(), 4).toString(); sImpueOri = jTab.getValueAt(jTab.getSelectedRow(), 5).toString(); sTotOri = jTab.getValueAt(jTab.getSelectedRow(), 6).toString(); sRealOri = jTab.getValueAt(jTab.getSelectedRow(), 7).toString(); sFechOri = jTab.getValueAt(jTab.getSelectedRow(), 8).toString(); sSucOri = jTab.getValueAt(jTab.getSelectedRow(), 9).toString(); sCajOri = jTab.getValueAt(jTab.getSelectedRow(), 10).toString(); sEstacOri = jTab.getValueAt(jTab.getSelectedRow(), 11).toString(); sNomEstacOri = jTab.getValueAt(jTab.getSelectedRow(), 12).toString(); /*Aumenta el contador para saber que va de salida*/ ++iContCellEd; } /*Else, el contador de cell editor es 2, osea que va de salida*/ else { /*Coloca los valores originales que tenian*/ jTab.setValueAt(sOrdOri, jTab.getSelectedRow(), 1); jTab.setValueAt(sProyOri, jTab.getSelectedRow(), 2); jTab.setValueAt(sProvOri, jTab.getSelectedRow(), 3); jTab.setValueAt(sImpoOri, jTab.getSelectedRow(), 4); jTab.setValueAt(sImpueOri, jTab.getSelectedRow(), 5); jTab.setValueAt(sTotOri, jTab.getSelectedRow(), 6); jTab.setValueAt(sRealOri, jTab.getSelectedRow(), 7); jTab.setValueAt(sFechOri, jTab.getSelectedRow(), 8); jTab.setValueAt(sSucOri, jTab.getSelectedRow(), 9); jTab.setValueAt(sCajOri, jTab.getSelectedRow(), 10); jTab.setValueAt(sEstacOri, jTab.getSelectedRow(), 11); jTab.setValueAt(sNomEstacOri, jTab.getSelectedRow(), 12); /*Resetea el celleditor*/ iContCellEd = 1; } } /*Fin de if("tableCellEditor".equals(property)) */ } /*Fin de public void propertyChange(PropertyChangeEvent event) */ }; /*Establece el listener para la tabla*/ jTab.addPropertyChangeListener(pro); } /*Fin de public VisEmps() */
public LibraryApp() { super("Ambient Library"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); bookTable_.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); contentPane_.setBorder(new EmptyBorder(10, 5, 10, 5)); contentPane_.setLayout(new BorderLayout(0, 0)); setContentPane(contentPane_); contentPane_.add(bookTableScrollPane_); contentPane_.add(keywordPanel_, BorderLayout.SOUTH); keywordPanel_.setBorder(new EmptyBorder(5, 0, 0, 0)); keywordPanel_.setLayout(new BorderLayout(5, 0)); keywordPanel_.add(keywordField_); keywordPanel_.add(keywordLabel_, BorderLayout.WEST); // bookTable_.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS); bookTable_.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS); bookTable_.setDefaultRenderer(String.class, bookTableCellRenderer_); bookTable_.setDefaultRenderer(Icon.class, statusCellRenderer_); bookTable_.setDefaultRenderer(ImageIcon.class, statusCellRenderer_); bookTable_.setCellSelectionEnabled(false); bookTable_.setRowSelectionAllowed(true); bookTable_.setSelectionBackground(Color.blue); JMenuItem addReviewMenuItem = new JMenuItem(ADD_REVIEW_CMD); JMenuItem clearReviewsMenuItem = new JMenuItem(CLR_REVIEW_CMD); JMenuItem editKeywordsMenuItem = new JMenuItem(EDIT_KEYWS_CMD); addReviewMenuItem.addActionListener(new AddReviewActionAdapter(this)); clearReviewsMenuItem.addActionListener(new ClearReviewsActionAdapter(this)); editKeywordsMenuItem.addActionListener(new EditKeywordsActionAdapter(this)); popupMenu_.add(addReviewMenuItem); popupMenu_.add(clearReviewsMenuItem); popupMenu_.add(editKeywordsMenuItem); MouseListener popupListener = new PopupListener(); bookTable_.addMouseListener(popupListener); TableColumn statusColumn = bookTable_.getColumnModel().getColumn(0); statusColumn.setMaxWidth(40); statusColumn.setMaxWidth(40); statusColumn.setPreferredWidth(40); TableColumn ratingColumn = bookTable_.getColumnModel().getColumn(3); ratingColumn.setMaxWidth(60); ratingColumn.setMaxWidth(60); ratingColumn.setPreferredWidth(60); TableColumn favorColumn = bookTable_.getColumnModel().getColumn(4); favorColumn.setMaxWidth(60); favorColumn.setMaxWidth(60); favorColumn.setPreferredWidth(60); sorter_ = new TableRowSorter<BookTableModel>(bookTableModel_); bookTable_.setRowSorter(sorter_); sorter_.setSortsOnUpdates(true); ImageIcon starIcon = new ImageIcon(LibraryApp.class.getResource("../icons/flatstar.png")); JLabel ratingLabel = new JLabel("", starIcon, JLabel.CENTER); TableCellRenderer ratingRenderer = new HeaderRenderer(); ratingColumn.setHeaderRenderer(ratingRenderer); ratingColumn.setHeaderValue(ratingLabel); ImageIcon heartIcon = new ImageIcon(LibraryApp.class.getResource("../icons/flatheart.png")); JLabel favorLabel = new JLabel("", heartIcon, JLabel.CENTER); TableCellRenderer favorRenderer = new HeaderRenderer(); favorColumn.setHeaderRenderer(favorRenderer); favorColumn.setHeaderValue(favorLabel); keywordLabel_.setIcon(heartIcon); keywordField_.addActionListener(new KeywordActionListener()); keywordField_.getDocument().addDocumentListener(new KeywordDocumentListener()); keywordField_.getDocument().putProperty("name", "Keyword Field"); keywordField_.setText("a,e,i,o,u,y"); this.pack(); this.setVisible(true); }
// using legacy lib, raw types extend Object @SuppressWarnings("unchecked") TableView() { // model mModel = new DefaultTableModel(0, 1) { // row sorter needs this @Override public Class<?> getColumnClass(int columnIndex) { return TableView.this.getColumnClass(columnIndex); } }; this.setModel(mModel); // sorter mRowSorter = new TableRowSorter<>(mModel); List<RowSorter.SortKey> sortKeys = new ArrayList<>(); sortKeys.add(new RowSorter.SortKey(0, SortOrder.ASCENDING)); mRowSorter.setSortKeys(sortKeys); mRowSorter.setSortsOnUpdates(true); mRowSorter.sort(); // filter RowFilter<DefaultTableModel, Integer> rowFilter = new RowFilter<DefaultTableModel, Integer>() { @Override public boolean include(Entry<? extends DefaultTableModel, ? extends Integer> entry) { I i = (I) entry.getValue(0); return i.contains(mSearch); } }; mRowSorter.setRowFilter(rowFilter); this.setRowSorter(mRowSorter); // hide header this.setTableHeader(null); // hide grid this.setShowGrid(false); // use custom renderer this.setDefaultRenderer(TableItem.class, new TableRenderer()); // trigger editing to forward mouse events this.addMouseMotionListener( new MouseMotionListener() { @Override public void mouseDragged(MouseEvent e) {} @Override public void mouseMoved(MouseEvent e) { int row = TableView.this.rowAtPoint(e.getPoint()); if (row >= 0) { TableView.this.editCellAt(row, 0); } } }); // actions triggered by mouse events this.addMouseListener( new MouseAdapter() { @Override public void mouseExited(MouseEvent e) { if (mTip != null) mTip.closeTooltip(); } }); }