Tag: jxtable

冻结JXTable中的列

我希望能够像在Excel电子表格中一样冻结JXTable中的列,并且遇到了这个项目: xframe-swing的JXTable 。 只是想知道是否有这个项目的教程。 请注意,这与swingx项目中的JXTable不同。 或许还有另一种方式?

JXTable:对特定单元格而不是整列使用TableCellEditor和TableCellRenderer

我有一个6列的JXTable复合,其中两个是JCheckBox 。 我想有以下行为: 如果选中第一个复选框,则启用第二个复选框,可以检查或不检查。 如果未选中第一个复选框,则必须禁用并取消选中第二个复选框。 我用Photoshop编辑了一个图像以显示所需的结果: 对于CheckOne和CheckTwo列,我使用自定义TableCellEditor和TableCellRenderer : public class CheckBoxCellEditor extends AbstractCellEditor implements TableCellEditor { private static final long serialVersionUID = 1L; private JCheckBox checkBox = new JCheckBox(); public CheckBoxCellEditor() { checkBox.setHorizontalAlignment(SwingConstants.CENTER); } @Override public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { checkBox.setSelected(value==null ? false : (boolean)value); return checkBox; […]

如何将JTable列设置为String并排序为Double?

我还是Java的新手,对JTable(更具体地说是JXTable)有问题,并按列类对混合数据类型进行排序……让我详细说明…… 我有一个JXTable,用于保存产品列表的数据。 这个表有一个价格列,我只设置为String.class,这样我就可以显示前缀为’$’的价格。 我遇到的问题是当行按价格排序时,它们不是按双打排序,而是按字符串排序,所以这些值: 89.85,179.70,299.40,478.80 分类为: 179.70,299.40,47.80,89.85(升序)和89.85,47.80,299.40,179.70(降序) 我想要做的是在排序时删除’$’并将列排序为双打。 我怎么做到这一点? 编辑: 非常感谢Jiri Patera的回复。 帮助我理解tablecellrenderer负责在这些类型的情况下操纵值,这是一个很大的帮助。 以下是最终完成我想要的摘录。 public Component getTableCellRendererComponent(JTable pTable, Object pValue, boolean pIsSelected, boolean pHasFocus, int pRow, int pColumn) { // Use the wrapped renderer Component renderedComponent = mWrappedRenderer.getTableCellRendererComponent(pTable, pValue, pIsSelected, pHasFocus, pRow, pColumn); Component renderedComponentHeader = pTable.getTableHeader().getDefaultRenderer().getTableCellRendererComponent(pTable, pValue, pIsSelected, pHasFocus, pRow, pColumn); if (pColumn == […]