⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basictableui.java

📁 gcc的组建
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
              else                advanceSingleSelection(rowModel, rowMax, colModel, colMax,                                        (command.equals                                         ("selectPreviousRowCell")));              return;            }                              // rowMinSelected and rowMaxSelected are the minimum and maximum          // values respectively of selected cells in the row selection model          // Similarly for colMinSelected and colMaxSelected.          int rowMaxSelected = table.getRowSelectionAllowed() ?             rowModel.getMaxSelectionIndex() : table.getModel().getRowCount() - 1;          int rowMinSelected = table.getRowSelectionAllowed() ?             rowModel.getMinSelectionIndex() : 0;           int colMaxSelected = table.getColumnSelectionAllowed() ?             colModel.getMaxSelectionIndex() :             table.getModel().getColumnCount() - 1;          int colMinSelected = table.getColumnSelectionAllowed() ?             colModel.getMinSelectionIndex() : 0;                    // If there are multiple rows and columns selected, select the next          // cell and wrap at the edges of the selection.            if (command.indexOf("Column") != -1)             advanceMultipleSelection(colModel, colMinSelected, colMaxSelected,                                      rowModel, rowMinSelected, rowMaxSelected,                                      (command.equals                                      ("selectPreviousColumnCell")), true);                    else            advanceMultipleSelection(rowModel, rowMinSelected, rowMaxSelected,                                      colModel, colMinSelected, colMaxSelected,                                      (command.equals                                       ("selectPreviousRowCell")), false);        }      else if (command.equals("selectNextColumn"))        {          rowModel.setSelectionInterval(rowLead,rowLead);          colModel.setSelectionInterval(Math.min(colLead + 1, colMax),                                        Math.min(colLead + 1, colMax));        }      else if (command.equals("scrollLeftExtendSelection"))        {          int target;          if (colLead == getFirstVisibleColumnIndex())            target = Math.max              (0, colLead - (getLastVisibleColumnIndex() -                             getFirstVisibleColumnIndex() + 1));          else            target = getFirstVisibleColumnIndex();                    colModel.setLeadSelectionIndex(target);          rowModel.setLeadSelectionIndex(rowLead);        }      else if (command.equals("scrollDownChangeSelection"))        {          int target;          if (rowLead == getLastVisibleRowIndex())            target = Math.min              (rowMax, rowLead + (getLastVisibleRowIndex() -                                   getFirstVisibleRowIndex() + 1));          else            target = getLastVisibleRowIndex();                    rowModel.setSelectionInterval(target, target);          colModel.setSelectionInterval(colLead, colLead);        }      else if (command.equals("scrollRightExtendSelection"))        {          int target;          if (colLead == getLastVisibleColumnIndex())            target = Math.min              (colMax, colLead + (getLastVisibleColumnIndex() -                                  getFirstVisibleColumnIndex() + 1));          else            target = getLastVisibleColumnIndex();                    colModel.setLeadSelectionIndex(target);          rowModel.setLeadSelectionIndex(rowLead);        }      else if (command.equals("selectAll"))        {          table.selectAll();        }      else if (command.equals("selectLastRowExtendSelection"))        {          rowModel.setLeadSelectionIndex(rowMax);          colModel.setLeadSelectionIndex(colLead);        }      else if (command.equals("scrollDownExtendSelection"))        {          int target;          if (rowLead == getLastVisibleRowIndex())            target = Math.min              (rowMax, rowLead + (getLastVisibleRowIndex() -                                   getFirstVisibleRowIndex() + 1));          else            target = getLastVisibleRowIndex();                    rowModel.setLeadSelectionIndex(target);          colModel.setLeadSelectionIndex(colLead);        }            else if (command.equals("scrollUpChangeSelection"))        {          int target;          if (rowLead == getFirstVisibleRowIndex())            target = Math.max              (0, rowLead - (getLastVisibleRowIndex() -                              getFirstVisibleRowIndex() + 1));          else            target = getFirstVisibleRowIndex();                    rowModel.setSelectionInterval(target, target);          colModel.setSelectionInterval(colLead, colLead);        }      else if (command.equals("selectNextRowChangeLead"))          {            if (rowModel.getSelectionMode() != ListSelectionModel.MULTIPLE_INTERVAL_SELECTION)              {                // just "selectNextRow"                rowModel.setSelectionInterval(Math.min(rowLead + 1, rowMax),                                              Math.min(rowLead + 1, rowMax));                colModel.setSelectionInterval(colLead,colLead);              }            else              rowModel.moveLeadSelectionIndex(Math.min(rowLead + 1, rowMax));          }      else if (command.equals("selectPreviousRowChangeLead"))        {          if (rowModel.getSelectionMode() != ListSelectionModel.MULTIPLE_INTERVAL_SELECTION)            {              // just selectPreviousRow              rowModel.setSelectionInterval(Math.max(rowLead - 1, 0),                                            Math.min(rowLead -1, 0));              colModel.setSelectionInterval(colLead,colLead);            }          else            rowModel.moveLeadSelectionIndex(Math.max(rowLead - 1, 0));        }      else if (command.equals("selectNextColumnChangeLead"))        {          if (colModel.getSelectionMode() != ListSelectionModel.MULTIPLE_INTERVAL_SELECTION)                        {              // just selectNextColumn              rowModel.setSelectionInterval(rowLead,rowLead);              colModel.setSelectionInterval(Math.min(colLead + 1, colMax),                                            Math.min(colLead + 1, colMax));            }          else            colModel.moveLeadSelectionIndex(Math.min(colLead + 1, colMax));        }      else if (command.equals("selectPreviousColumnChangeLead"))        {          if (colModel.getSelectionMode() != ListSelectionModel.MULTIPLE_INTERVAL_SELECTION)                        {              // just selectPreviousColumn              rowModel.setSelectionInterval(rowLead,rowLead);              colModel.setSelectionInterval(Math.max(colLead - 1, 0),                                            Math.max(colLead - 1, 0));                          }          else            colModel.moveLeadSelectionIndex(Math.max(colLead - 1, 0));        }      else if (command.equals("addToSelection"))          {            if (!table.isEditing())              {                int oldRowAnchor = rowModel.getAnchorSelectionIndex();                int oldColAnchor = colModel.getAnchorSelectionIndex();                rowModel.addSelectionInterval(rowLead, rowLead);                colModel.addSelectionInterval(colLead, colLead);                rowModel.setAnchorSelectionIndex(oldRowAnchor);                colModel.setAnchorSelectionIndex(oldColAnchor);              }          }      else if (command.equals("extendTo"))        {          rowModel.setSelectionInterval(rowModel.getAnchorSelectionIndex(),                                        rowLead);          colModel.setSelectionInterval(colModel.getAnchorSelectionIndex(),                                        colLead);        }      else if (command.equals("toggleAndAnchor"))        {          if (rowModel.isSelectedIndex(rowLead))            rowModel.removeSelectionInterval(rowLead, rowLead);          else            rowModel.addSelectionInterval(rowLead, rowLead);                    if (colModel.isSelectedIndex(colLead))            colModel.removeSelectionInterval(colLead, colLead);          else            colModel.addSelectionInterval(colLead, colLead);                    rowModel.setAnchorSelectionIndex(rowLead);          colModel.setAnchorSelectionIndex(colLead);        }      else         {          // If we're here that means we bound this TableAction class          // to a keyboard input but we either want to ignore that input          // or we just haven't implemented its action yet.                    // Uncomment the following line to print the names of unused bindings          // when their keys are pressed                    // System.out.println ("not implemented: "+e.getActionCommand());        }      // Any commands whose keyStrokes should be used by the Editor should not      // cause editing to be stopped: ie, the SPACE sends "addToSelection" but       // if the table is in editing mode, the space should not cause us to stop      // editing because it should be used by the Editor.      if (table.isEditing() && command != "startEditing"          && command != "addToSelection")        table.editingStopped(new ChangeEvent("update"));                  table.scrollRectToVisible        (table.getCellRect(rowModel.getLeadSelectionIndex(),                            colModel.getLeadSelectionIndex(), false));      table.repaint();    }        /**     * Returns the column index of the first visible column.     * @return the column index of the first visible column.     */    int getFirstVisibleColumnIndex()    {      ComponentOrientation or = table.getComponentOrientation();      Rectangle r = table.getVisibleRect();      if (!or.isLeftToRight())        r.translate((int) r.getWidth() - 1, 0);      return table.columnAtPoint(r.getLocation());    }        /**     * Returns the column index of the last visible column.     *     */    int getLastVisibleColumnIndex()    {      ComponentOrientation or = table.getComponentOrientation();      Rectangle r = table.getVisibleRect();      if (or.isLeftToRight())        r.translate((int) r.getWidth() - 1, 0);      return table.columnAtPoint(r.getLocation());          }        /**     * Returns the row index of the first visible row.     *     */    int getFirstVisibleRowIndex()    {      ComponentOrientation or = table.getComponentOrientation();      Rectangle r = table.getVisibleRect();      if (!or.isLeftToRight())        r.translate((int) r.getWidth() - 1, 0);      return table.rowAtPoint(r.getLocation());    }        /**     * Returns the row index of the last visible row.     *     */    int getLastVisibleRowIndex()    {      ComponentOrientation or = table.getComponentOrientation();      Rectangle r = table.getVisibleRect();      r.translate(0, (int) r.getHeight() - 1);      if (or.isLeftToRight())        r.translate((int) r.getWidth() - 1, 0);      // The next if makes sure that we don't return -1 simply because      // there is white space at the bottom of the table (ie, the display      // area is larger than the table)      if (table.rowAtPoint(r.getLocation()) == -1)        {          if (getFirstVisibleRowIndex() == -1)            return -1;          else            return table.getModel().getRowCount() - 1;        }      return table.rowAtPoint(r.getLocation());    }    /**     * A helper method for the key bindings.  Used because the actions     * for TAB, SHIFT-TAB, ENTER, and SHIFT-ENTER are very similar.     *     * Selects the next (previous if SHIFT pressed) column for TAB, or row for     * ENTER from within the currently selected cells.     *     * @param firstModel the ListSelectionModel for columns (TAB) or     * rows (ENTER)     * @param firstMin the first selected index in firstModel     * @param firstMax the last selected index in firstModel     * @param secondModel the ListSelectionModel for rows (TAB) or      * columns (ENTER)     * @param secondMin the first selected index in secondModel     * @param secondMax the last selected index in secondModel     * @param reverse true if shift was held for the event     * @param eventIsTab true if TAB was pressed, false if ENTER pressed     */    void advanceMultipleSelection (ListSelectionModel firstModel, int firstMin,                                   int firstMax, ListSelectionModel secondModel,                                    int secondMin, int secondMax, boolean reverse,                                   boolean eventIsTab)    {      // If eventIsTab, all the "firsts" correspond to columns, otherwise, to rows      // "seconds" correspond to the opposite      int firstLead = firstModel.getLeadSelectionIndex();      int secondLead = secondModel.getLeadSelectionIndex();      int numFirsts = eventIsTab ?         table.getModel().getColumnCount() : table.getModel().getRowCount();      int numSeconds = eventIsTab ?         table.getModel().getRowCount() : table.getModel().getColumnCount();      // check if we have to wrap the "firsts" around, going to the other side      if ((firstLead == firstMax && !reverse) ||           (reverse && firstLead == firstMin))        {          firstModel.addSelectionInterval(reverse ? firstMax : firstMin,                                           reverse ? firstMax : firstMin);                    // check if we have to wrap the "seconds"          if ((secondLead == secondMax && !reverse) ||               (reverse && secondLead == secondMin))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -