类javax.swing.table.DefaultTableModel源码实例Demo

下面列出了怎么用javax.swing.table.DefaultTableModel的API类实例代码及写法,或者点击链接到github查看源代码。

private void saveCapabilities() {
    if (capTable.isEditing()) {
        capTable.getCellEditor().stopCellEditing();
    }
    DefaultTableModel model = (DefaultTableModel) capTable.getModel();
    LinkedProperties properties = new LinkedProperties();
    for (int i = 0; i < model.getRowCount(); i++) {
        String prop = Objects.toString(model.getValueAt(i, 0), "").trim();
        if (!prop.isEmpty()) {
            String value = Objects.toString(model.getValueAt(i, 1), "");
            properties.setProperty(prop, value);
        }
    }
    settings.getCapabilities().addCapability(browserCombo.getSelectedItem().toString(),
            properties);
}
 
源代码2 项目: java-swing-tips   文件: MainPanel.java
private MainPanel() {
  super(new BorderLayout());

  String[] columnNames = {"Column1", "Column2"};
  Object[][] data = {
    {"colors", makeModel("blue", "violet", "red", "yellow")},
    {"sports", makeModel("basketball", "soccer", "football", "hockey")},
    {"food", makeModel("hot dogs", "pizza", "ravioli", "bananas")},
  };
  TableModel model = new DefaultTableModel(data, columnNames) {
    @Override public Class<?> getColumnClass(int column) {
      return column == 1 ? DefaultComboBoxModel.class : String.class;
    }
  };
  JTable table = new JTable(model);
  table.setRowHeight(24);
  table.setAutoCreateRowSorter(true);

  TableColumn col = table.getColumnModel().getColumn(1);
  col.setCellRenderer(new ComboCellRenderer());
  col.setCellEditor(new ComboCellEditor());

  add(new JScrollPane(table));
  setPreferredSize(new Dimension(320, 240));
}
 
public void testDataSchemaForPlainTables() throws ReportDataFactoryException {
  final DefaultTableModel model = new DefaultTableModel();
  model.addColumn( "Test" );

  final ResourceManager mgr = new ResourceManager();
  mgr.registerDefaults();

  final DataSchemaDefinition schemaDefinition = DataSchemaUtility.parseDefaults( mgr );
  final DataSchemaCompiler compiler =
      new DataSchemaCompiler( schemaDefinition, new DefaultDataAttributeContext(), mgr );
  final DataSchema compiledSchema = compiler.compile( model );
  final DataAttributes attributes = compiledSchema.getAttributes( "Test" );
  assertNotNull( attributes );
  assertEquals( "Test", attributes.getMetaAttribute( MetaAttributeNames.Formatting.NAMESPACE,
      MetaAttributeNames.Formatting.LABEL, String.class, new DefaultDataAttributeContext() ) );
}
 
源代码4 项目: MooTool   文件: HttpRequestForm.java
/**
 * 初始化CookieTable
 */
public static void initCookieTable() {
    JTable paramTable = getInstance().getCookieTable();
    paramTable.setRowHeight(36);
    String[] headerNames = {"Name", "Value", "Domain", "Path", "Expiry", ""};
    DefaultTableModel model = new DefaultTableModel(null, headerNames);
    paramTable.setModel(model);
    paramTable.updateUI();
    DefaultTableCellRenderer hr = (DefaultTableCellRenderer) paramTable.getTableHeader().getDefaultRenderer();
    // 表头列名居左
    hr.setHorizontalAlignment(DefaultTableCellRenderer.LEFT);

    TableColumnModel tableColumnModel = paramTable.getColumnModel();
    tableColumnModel.getColumn(headerNames.length - 1).
            setCellRenderer(new TableInCellButtonColumn(paramTable, headerNames.length - 1));
    tableColumnModel.getColumn(headerNames.length - 1).
            setCellEditor(new TableInCellButtonColumn(paramTable, headerNames.length - 1));

    // 设置列宽
    tableColumnModel.getColumn(headerNames.length - 1).setPreferredWidth(46);
    tableColumnModel.getColumn(headerNames.length - 1).setMaxWidth(46);
}
 
private void saveModule() {
    if (moduleCombo.getSelectedIndex() != -1) {
        String moduleName = moduleCombo.getSelectedItem().toString();
        TestMgModule module = testMgmtModule.getModule(moduleName);
        Properties properties;
        properties = encryptpassword(PropUtils.getPropertiesFromTable(moduleTable));
        PropUtils.loadPropertiesInTable(properties, moduleTable, "");
        if (moduleTable.isEditing()) {
            moduleTable.getCellEditor().stopCellEditing();
        }
        module.getOptions().clear();
        DefaultTableModel model = (DefaultTableModel) moduleTable.getModel();
        for (int i = 0; i < model.getRowCount(); i++) {
            String prop = Objects.toString(model.getValueAt(i, 0), "").trim();
            if (!prop.isEmpty()) {
                String value = Objects.toString(model.getValueAt(i, 1), "");
                module.getOptions().add(new Option(prop, value));
            }
        }
    }
}
 
源代码6 项目: pentaho-reporting   文件: LibraryPanel.java
/**
 * Constructs a LibraryPanel.
 *
 * @param libraries
 *          a list of libraries (represented by Library objects).
 */
public LibraryPanel( final List libraries ) {

  setLayout( new BorderLayout() );

  final ResourceBundle resources = ResourceBundle.getBundle( SwingPreviewModule.BUNDLE_NAME );

  final String[] names =
      new String[] { resources.getString( "libraries-table.column.name" ),
        resources.getString( "libraries-table.column.version" ),
        resources.getString( "libraries-table.column.licence" ), resources.getString( "libraries-table.column.info" ) };
  final DefaultTableModel model = new DefaultTableModel( names, libraries.size() );
  for ( int i = 0; i < libraries.size(); i++ ) {
    final DependencyInformation depInfo = (DependencyInformation) libraries.get( i );
    model.setValueAt( depInfo.getName(), i, 0 );
    model.setValueAt( depInfo.getVersion(), i, 1 );
    model.setValueAt( depInfo.getLicenseName(), i, 2 );
    model.setValueAt( depInfo.getInfo(), i, 3 );
  }

  this.table = new JTable( model );
  add( new JScrollPane( this.table ) );

}
 
源代码7 项目: openAGV   文件: FilterTableModel.java
/**
 * Filters the transport orders.
 */
private void filter() {
  int rowCount = getModel().getRowCount();
  int[] help = new int[rowCount];
  int counter = 0;

  for (int i = 0; i < rowCount; i++) {
    Object value = getModel().getValueAt(i, fColumnIndexToFilter);

    if (!isFilterSet(value)) {
      help[counter] = i;
      counter++;
    }
  }

  fIndices = new int[counter];
  System.arraycopy(help, 0, fIndices, 0, counter);

  ((DefaultTableModel) getModel()).fireTableDataChanged();
}
 
源代码8 项目: java-swing-tips   文件: MainPanel.java
private MainPanel() {
  super(new BorderLayout());
  URL[] icons = {getIconUrl("wi0062-16.png"), getIconUrl("wi0063-16.png"), getIconUrl("wi0064-16.png")};
  String[] columnNames = {"Column1", "Column2", "Column3"};
  JTable table = new JTable(new DefaultTableModel(columnNames, 8));
  TableColumnModel m = table.getColumnModel();
  for (int i = 0; i < m.getColumnCount(); i++) {
    // m.getColumn(i).setHeaderRenderer(new IconColumnHeaderRenderer());
    // m.getColumn(i).setHeaderRenderer(new HtmlIconHeaderRenderer());
    // m.getColumn(i).setHeaderValue(String.format("<html><table><td><img src='%s'/></td>%s", icons[i], columnNames[i]));
    String hv = String.format("<html><table cellpadding='0' cellspacing='0'><td><img src='%s'/></td>&nbsp;%s", icons[i], columnNames[i]);
    m.getColumn(i).setHeaderValue(hv);
  }
  table.setAutoCreateRowSorter(true);
  add(new JScrollPane(table));

  JMenuBar mb = new JMenuBar();
  mb.add(LookAndFeelUtil.createLookAndFeelMenu());
  SwingUtilities.invokeLater(() -> getRootPane().setJMenuBar(mb));

  setPreferredSize(new Dimension(320, 240));
}
 
源代码9 项目: pentaho-reporting   文件: PagebreakIT.java
@Test
public void testRowWithPrePostPad() throws Exception {
  final MasterReport report = new MasterReport();
  report.setDataFactory( new TableDataFactory( "query", new DefaultTableModel( 10, 1 ) ) );
  report.setQuery( "query" );

  final Band table = TableTestUtil.createTable( 1, 1, 6, true );
  table.getStyle().setStyleProperty( ElementStyleKeys.MIN_WIDTH, 200f );
  table.setName( "table" );
  report.getReportHeader().addElement( TableTestUtil.createDataItem( "Pre-Padding", 100, 10 ) );
  report.getReportHeader().addElement( table );
  report.getReportHeader().addElement( TableTestUtil.createDataItem( "Post-Padding", 100, 10 ) );
  report.getReportHeader().setLayout( "row" );

  PdfReportUtil.createPDF( report, "test-output/PRD-3857-output-row.pdf" );
  List<LogicalPageBox> pages = DebugReportRunner.layoutPages( report, 0, 1, 2 );

  assertPageValid( pages, 0 );
  assertPageValid( pages, 1 );
  assertPageValid( pages, 2 );
  // assertPageValid(report, 3);
  // assertPageValid(report, 4);
}
 
源代码10 项目: dsworkbench   文件: VillageSupportFrame.java
private boolean deleteSelection(boolean pAsk) {
    List<Attack> selectedSupports = getSelectedSupports();
    if (pAsk) {
        String message = ((selectedSupports.size() == 1) ? "Unterstützung " : (selectedSupports.size() + " Unterstützungen ")) + "wirklich löschen?";
        if (selectedSupports.isEmpty() || JOptionPaneHelper.showQuestionConfirmBox(jResultFrame, message, "Angriffe löschen", "Nein", "Ja") != JOptionPane.YES_OPTION) {
            return false;
        }
    }
    DefaultTableModel model = (DefaultTableModel) jSupportTable.getModel();
    int numRows = jSupportTable.getSelectedRows().length;
    for (int i = 0; i < numRows; i++) {
        model.removeRow(jSupportTable.convertRowIndexToModel(jSupportTable.getSelectedRow()));
    }
    showSuccess(((numRows == 1) ? "Unterstützung " : " Unterstützungen ") + " gelöscht");
    return true;
}
 
源代码11 项目: WePush   文件: PushHisForm.java
private static void initHisLeftTable() {
    // 导入历史管理
    String[] headerNames = {"消息名称", "状态", "时间", "id"};
    DefaultTableModel model = new DefaultTableModel(null, headerNames);
    pushHisForm.getPushHisLeftTable().setModel(model);

    DefaultTableCellRenderer hr = (DefaultTableCellRenderer) pushHisForm.getPushHisLeftTable().getTableHeader()
            .getDefaultRenderer();
    // 表头列名居左
    hr.setHorizontalAlignment(DefaultTableCellRenderer.LEFT);

    List<TPushHistory> pushHistoryList = pushHistoryMapper.selectByMsgType(App.config.getMsgType());
    Object[] data;
    for (TPushHistory tPushHistory : pushHistoryList) {
        data = new Object[4];
        data[0] = tPushHistory.getMsgName();
        data[1] = tPushHistory.getResult();
        data[2] = tPushHistory.getCreateTime();
        data[3] = tPushHistory.getId();
        model.addRow(data);
    }

    // 隐藏id列
    JTableUtil.hideColumn(pushHisForm.getPushHisLeftTable(), 3);
}
 
源代码12 项目: visualvm   文件: JavaObjectsSummary.java
protected JComponent createComponent() {
    TableModel model = new DefaultTableModel(PREVIEW_ITEMS, 1) {
        { setValueAt(Bundle.JavaObjectsSummary_ComputingProgress(), 0, 0); }
        public boolean isCellEditable(int row, int column) { return false; }
    };

    ProfilerRenderer renderer = new LabelRenderer() {
        public void setValue(Object o, int i) {
            super.setValue(o, i);
            setIcon(o == null || o.toString().isEmpty() ? null : Icons.getIcon(HeapWalkerIcons.PROGRESS));
        }
    };

    ProfilerTable t = createTable(model);
    t.setDefaultRenderer(Object.class, renderer);
    
    return t;
}
 
源代码13 项目: WePush   文件: HttpMsgForm.java
/**
 * 初始化ParamTable
 */
public static void initParamTable() {
    JTable paramTable = getInstance().getParamTable();
    paramTable.setRowHeight(36);
    String[] headerNames = {"Name", "Value", ""};
    DefaultTableModel model = new DefaultTableModel(null, headerNames);
    paramTable.setModel(model);
    paramTable.updateUI();
    DefaultTableCellRenderer hr = (DefaultTableCellRenderer) paramTable.getTableHeader().getDefaultRenderer();
    // 表头列名居左
    hr.setHorizontalAlignment(DefaultTableCellRenderer.LEFT);

    TableColumnModel tableColumnModel = paramTable.getColumnModel();
    tableColumnModel.getColumn(headerNames.length - 1).
            setCellRenderer(new TableInCellButtonColumn(paramTable, headerNames.length - 1));
    tableColumnModel.getColumn(headerNames.length - 1).
            setCellEditor(new TableInCellButtonColumn(paramTable, headerNames.length - 1));

    // 设置列宽
    tableColumnModel.getColumn(headerNames.length - 1).setPreferredWidth(46);
    tableColumnModel.getColumn(headerNames.length - 1).setMaxWidth(46);
}
 
源代码14 项目: java-swing-tips   文件: HeaderCheckBoxHandler.java
private boolean fireUpdateEvent(DefaultTableModel m, TableColumn column, Object status) {
  if (status == Status.INDETERMINATE) {
    List<?> data =  m.getDataVector();
    List<Boolean> l = data.stream()
        .map(v -> (Boolean) ((List<?>) v).get(targetColumnIndex))
        .distinct()
        .collect(Collectors.toList());
    boolean notDuplicates = l.size() == 1;
    if (notDuplicates) {
      boolean isSelected = l.get(0);
      column.setHeaderValue(isSelected ? Status.SELECTED : Status.DESELECTED);
      return true;
    } else {
      return false;
    }
  } else {
    column.setHeaderValue(Status.INDETERMINATE);
    return true;
  }
}
 
源代码15 项目: triplea   文件: AccessLogTabActions.java
BiConsumer<Integer, DefaultTableModel> banUser() {
  return (rowNumber, tableModel) ->
      ActionDurationDialog.builder()
          .parent(parentFrame)
          .actionName(ActionName.BAN)
          .build()
          .prompt()
          .map(
              duration ->
                  BanData.builder()
                      .actionDuration(duration)
                      .username(String.valueOf(tableModel.getValueAt(rowNumber, 1)))
                      .ip(String.valueOf(tableModel.getValueAt(rowNumber, 2)))
                      .hashedMac(String.valueOf(tableModel.getValueAt(rowNumber, 3)))
                      .build())
          .ifPresent(this::confirmAndExecuteBan);
}
 
public DesignerExpressionRuntime( final DataRow dataRow,
                                  final DataSchema dataSchema,
                                  final MasterReport report ) {
  this.report = report;
  if ( report == null ) {
    throw new NullPointerException();
  }

  this.dataRow = dataRow;
  this.dataSchema = dataSchema;
  this.tableModel = new DefaultTableModel();
  try {
    this.processingContext = new DesignerProcessingContext( report );
  } catch ( ReportProcessingException e ) {
    this.processingContext = new DesignerProcessingContext();
  }
}
 
源代码17 项目: MVPManager   文件: EditorMVPDialog.java
/**
 * create a JTable instance
 *
 * @return
 */
private JTable newTableInstance() {
    String[] defaultValue = {"void", "method()"};
    DefaultTableModel mDefaultTableMoadel = new DefaultTableModel();
    Object[][] object = new Object[1][2];
    object[0][0] = "void";
    object[0][1] = "method()";
    mDefaultTableMoadel.setDataVector(object, new Object[]{"return", "method"});
    JTable mJtable = new JTable(mDefaultTableMoadel) {
        @Override
        public void tableChanged(TableModelEvent e) {
            super.tableChanged(e);
            repaint();
        }

        @Override
        public boolean isCellEditable(int row, int column) {
            return false;
        }
    };
    return mJtable;
}
 
源代码18 项目: Repeat   文件: SwingUtil.java
/**
 * Show a list of fields and values of them for user to confirm
 * @param confirmTitle title for the displayed window
 * @param titles list of titles of the fields to display
 * @param values values of each field in the according order
 * @return the JOptionPane selection value according to user's action
 */
public static int confirmValues(String confirmTitle, String[] titles, String[] values) {
	if (titles.length == 0 || (titles.length != values.length)) {
		return -1;
	}

	JTable table = new JTable();
	table.setModel(new DefaultTableModel(
		new Object[][] {},
		new String[] {" ", " "}
	));
	SwingUtil.TableUtil.ensureRowNumber(table, titles.length);

	for (int i = 0; i < titles.length; i++) {
		table.setValueAt(titles[i], i, 0);
		table.setValueAt(values[i], i, 1);
	}
	JScrollPane mainPanel = new JScrollPane(table);

	return JOptionPane.showConfirmDialog(null, mainPanel,
			confirmTitle, JOptionPane.YES_NO_OPTION);
}
 
源代码19 项目: netbeans   文件: J2SEProjectProperties.java
private void storeRoots( SourceRoots roots, DefaultTableModel tableModel ) throws MalformedURLException {
    Vector data = tableModel.getDataVector();
    URL[] rootURLs = new URL[data.size()];
    String []rootLabels = new String[data.size()];
    final LinkedList<URL> oldRootURLs = new LinkedList<URL>(Arrays.asList (roots.getRootURLs (false)));
    final LinkedList<String> oldRootLabels = new LinkedList<String>(Arrays.asList(roots.getRootNames()));
    final LinkedList<String> oldRootProps = new LinkedList<String>(Arrays.asList (roots.getRootProperties()));
    boolean rootsAreSame = true;
    for (int i=0; i<data.size();i++) {
        File f = (File) ((Vector)data.elementAt(i)).elementAt(0);
        rootURLs[i] = Utilities.toURI(f).toURL();
        if (!rootURLs[i].toExternalForm().endsWith("/")) {  //NOI18N
            rootURLs[i] = new URL(rootURLs[i]+"/");
        }
        validateURL(rootURLs[i],f);
        rootLabels[i] = (String) ((Vector)data.elementAt(i)).elementAt(1);
        rootsAreSame &= !oldRootURLs.isEmpty() &&
                        oldRootURLs.removeFirst().equals(rootURLs[i]) &&
                        roots.getRootDisplayName(oldRootLabels.removeFirst(), oldRootProps.removeFirst()).equals(rootLabels[i]);
    }
    if (!rootsAreSame || !oldRootURLs.isEmpty ()) {
        roots.putRoots(rootURLs,rootLabels);
    }
}
 
源代码20 项目: jdk8u60   文件: OldJTable.java
public TableColumn addColumn(Object columnIdentifier, int width,
                             TableCellRenderer renderer,
                             TableCellEditor editor, List columnData) {
    checkDefaultTableModel();

    // Set up the model side first
    DefaultTableModel m = (DefaultTableModel)getModel();
    m.addColumn(columnIdentifier, columnData.toArray());

    // The column will have been added to the end, so the index of the
    // column in the model is the last element.
    TableColumn newColumn = new TableColumn(
            m.getColumnCount()-1, width, renderer, editor);
    super.addColumn(newColumn);
    return newColumn;
}
 
源代码21 项目: java-swing-tips   文件: MainPanel.java
private void cleanup(JComponent c, boolean remove) {
  c.getRootPane().getGlassPane().setVisible(false);
  // c.setCursor(Cursor.getDefaultCursor());
  if (remove && Objects.nonNull(indices)) {
    DefaultTableModel model = (DefaultTableModel) ((JTable) c).getModel();
    if (addCount > 0) {
      for (int i = 0; i < indices.length; i++) {
        if (indices[i] >= addIndex) {
          indices[i] += addCount;
        }
      }
    }
    for (int i = indices.length - 1; i >= 0; i--) {
      model.removeRow(indices[i]);
    }
  }
  indices = null;
  addCount = 0;
  addIndex = -1;
}
 
源代码22 项目: pentaho-reporting   文件: SparklineODFDemo.java
/**
 * Creates data of sales per months.
 *
 * @return The tabular report data.
 */
private TableModel createData()
{
  try
  {
    final MasterReport report = createReport();
    return report.getDataFactory().queryData(report.getQuery(), report.getParameterValues());
  }
  catch (Exception e)
  {
    // ignore generate a new dataset
    final String[] columnNames = {"January", "February", "March", "April", "May", "June", "July", "August",
        "September", "October", "November", "December"};
    return new DefaultTableModel(columnNames, 0);
  }
}
 
源代码23 项目: netbeans   文件: RunContainerPropertiesVisual.java
public Map<String, String> getVolumesTable() {
    Map<String, String> result = new TreeMap<>();
    DefaultTableModel model = (DefaultTableModel) volumesTable.getModel();
    if (volumesTable.isEditing()) {
        volumesTable.getCellEditor().stopCellEditing();
    }
    for (Object o : model.getDataVector()) {
        Vector v = (Vector) o;
        String target = (String) v.elementAt(0);
        String source = (String) v.elementAt(1);
        if (target != null && source != null) {
            result.put(target, source);
        }
    }
    return result;
}
 
源代码24 项目: DeconvolutionLab2   文件: CustomizedTable.java
/**
 * Replaces all the content of the table by a content private as list of
 * String[].
 * 
 * @param data
 */
public void update(ArrayList<String[]> data) {
	DefaultTableModel model = (DefaultTableModel) getModel();
	model.getDataVector().removeAllElements();
	for (String[] row : data)
		model.addRow(row);
	repaint();
}
 
源代码25 项目: pentaho-reporting   文件: SubReportIT.java
private TableModel createColorTableModel() {
  final String[] names = new String[] { "Number", "Group", "Color" };
  final Object[][] data =
      new Object[][] { { new Integer( 1 ), "X", "Red" }, { new Integer( 2 ), "X", "Green" },
        { new Integer( 3 ), "Y", "Yellow" }, { new Integer( 3 ), "Y", "Yellow" }, { new Integer( 4 ), "Y", "Blue" },
        { new Integer( 4 ), "Y", "Blue" }, { new Integer( 5 ), "Z", "Orange" }, { new Integer( 5 ), "Z", "Orange" },
        { new Integer( 5 ), "Z", "Orange" }, { new Integer( 6 ), "Z", "White" }, { new Integer( 6 ), "Z", "White" },
        { new Integer( 6 ), "Z", "White" }, };
  return new DefaultTableModel( data, names );
}
 
源代码26 项目: pentaho-reporting   文件: SortingIT.java
@Test
public void testRunSorting() {
  List<SortConstraint> sc = new ArrayList<SortConstraint>();
  sc.add( new SortConstraint( "A", true ) );
  sc.add( new SortConstraint( "B", true ) );

  MasterReport report = new MasterReport();
  report.setQuery( "default" );
  report.setDataFactory( new ValidateDataFactory( "default", new DefaultTableModel( 10, 10 ), sc ) );
  report.setAttribute( AttributeNames.Core.NAMESPACE, AttributeNames.Core.AUTOSORT, true );
  RelationalGroup rootGroup = (RelationalGroup) report.getRootGroup();
  rootGroup.setFields( Arrays.asList( "A", "B" ) );

  int i = DebugReportRunner.execGraphics2D( report );
}
 
源代码27 项目: yeti   文件: YileController.java
public YileController(WorkflowController parent, YileModel dataModel) {
    setName("yileScan");

    setWorkflowController(parent);

    DisplayResultIFace displayResults = new YileDisplayResults();
    displayResults.setModel((DefaultTableModel) dataModel);
    setDisplayResults(displayResults);

    workers = new ArrayList<>();
}
 
源代码28 项目: openjdk-jdk9   文件: XMBeanAttributes.java
public XMBeanAttributes(MBeansTab mbeansTab) {
    super();
    this.mbeansTab = mbeansTab;
    ((DefaultTableModel)getModel()).setColumnIdentifiers(columnNames);
    attributesListener = new AttributesListener(this);
    getModel().addTableModelListener(attributesListener);
    getColumnModel().getColumn(NAME_COLUMN).setPreferredWidth(40);

    addMouseListener(mouseListener);
    getTableHeader().setReorderingAllowed(false);
    setColumnEditors();
    addKeyListener(new Utils.CopyKeyAdapter());
}
 
源代码29 项目: WePush   文件: TxYunMsgForm.java
public TxYunMsgForm() {
    // 模板数据-添加 按钮事件
    templateMsgDataAddButton.addActionListener(e -> {
        String[] data = new String[2];
        data[0] = getInstance().getTemplateDataNameTextField().getText();
        data[1] = getInstance().getTemplateDataValueTextField().getText();

        if (getInstance().getTemplateMsgDataTable().getModel().getRowCount() == 0) {
            initTemplateDataTable();
        }

        DefaultTableModel tableModel = (DefaultTableModel) getInstance().getTemplateMsgDataTable()
                .getModel();
        int rowCount = tableModel.getRowCount();

        Set<String> keySet = new HashSet<>();
        String keyData;
        for (int i = 0; i < rowCount; i++) {
            keyData = (String) tableModel.getValueAt(i, 0);
            keySet.add(keyData);
        }

        if (StringUtils.isEmpty(data[0]) || StringUtils.isEmpty(data[1])) {
            JOptionPane.showMessageDialog(MessageEditForm.getInstance().getMsgEditorPanel(), "模板参数和参数对应的值不能为空!", "提示",
                    JOptionPane.INFORMATION_MESSAGE);
        } else if (keySet.contains(data[0])) {
            JOptionPane.showMessageDialog(MessageEditForm.getInstance().getMsgEditorPanel(), "模板参数不能重复!", "提示",
                    JOptionPane.INFORMATION_MESSAGE);
        } else {
            tableModel.addRow(data);
        }
    });
}
 
源代码30 项目: visualvm   文件: JavaObjectsSummary.java
private void configureSnippet(final ResultsSnippet snippet, final Object[][] data) {
    final TableModel model = new DefaultTableModel(data, new Object[] {
                                        Bundle.JavaObjectsSummary_NameColumn(),
                                        Bundle.JavaObjectsSummary_ValueColumn() }) {
        public boolean isCellEditable(int row, int column) { return false; }
    };
    
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            snippet.setRealModel(model);
        }
    });
}
 
 类所在包
 同包方法