Tag: jtable

使用多个自定义表模型,避免重复代码

我正在一个项目中,我们有几个域类来建模业务数据。 这些类是简单的POJO,我必须使用它们显示几个表。 例如,考虑这个类: public class Customer { private Long id; private Date entryDate; private String name; private String address; private String phoneNumber; public Customer(Long id, Date entryDate, String name, String address, String phoneNumber) { this.id = id; this.entryDate = entryDate; this.nombre = name; this.domicilio = address; this.telefono = phoneNumber; } // Getters and setters here […]

问题格式化JTable中的字段 – Integer和Double之间的差异

更新 当columnClass为Double时,确认为JTable上的错误无法将给定的对象格式化为数字(错误ID:7051636) 。 您可以随意投票,或者如果您有替代(更好)的解决方案,请将其作为对报告的评论发布。 我正在构建一个JTable,其中包含一个扩展AbstractTableModel的自定义表模型。 我的模型需要支持空行显示和排序。 所以我接受了这篇文章来实现它,现在工作得非常好。 我仍然遇到JTable格式化字段的问题。 假设我有以下型号: public class MyModel extends AbstractTableModel{ public Object[] types= {new Integer(0), “”}; public static final Object EMPTY_ROW = “”; @Override public Object getValueAt(int rowIndex, int columnIndex) { return this.EMPTY_ROW; } public Class getColumnClass(int c) { if (c > this.types.length – 1) return null; else return this.types[c].getClass(); } […]

在JTable中按列对行进行排序

当您单击JTable上的列标题时,它会按字母顺序对行进行排序。 除了一个列之外,这适用于我的所有列。 在此列中,值都是字符串,但包含数字。 我需要根据它们的十进制值而不是字符串值对它们进行排序。 知道怎么做到这一点?

使用空列作为JTable中的分隔符

我正在尝试使用空列作为JTable的列对之间的分隔符。 这是我到目前为止的图片和代码。 我知道我可以使用自定义TableCellRenderer更改外观。 在我走这条路之前,还有更好的方法吗? 任何想法都赞赏。 TablePanel.png http://sofzh.miximages.com/java/1zxpfkj.png import javax.swing.*; import javax.swing.table.*; public class TablePanel extends JPanel { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { JFrame f = new JFrame(“TablePanel”); f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); f.add(new TablePanel()); f.pack(); f.setVisible(true); } }); } public TablePanel() { TableModel dataModel = new MyModel(); JTable table = […]

JTable多个标题行

我在我的应用程序中使用JTable并希望有2行标题,类似于: 这甚至是可能还是我必须做别的事? 如果是这样,什么? 使用Supertitle-titleA,SuperTitle-titleB将占用太多空间并使信息冗余。

如何从JTable中删除一行?

我想从JTable中删除一些行。 我该怎么做?

使用数据库数据填充jTable

我正在尝试使用我的Derby数据库数据填充Netbeans GUI-builder jTable。 我在我的Account.java类中使用以下代码: public DefaultTableModel getData() { try { String stmt = “SELECT * FROM APP.DATAVAULT”; PreparedStatement ps = Main.getPreparedStatement(stmt); ResultSet rs = ps.executeQuery(); ResultSetMetaData md = rs.getMetaData(); int columnCount = md.getColumnCount(); Vector columns = new Vector(columnCount); //store column names for (int i = 1; i <= columnCount; i++) { columns.add(md.getColumnName(i)); } Vector data […]

如何在JTable列中设置图标?

我能够设置列的标题,但无法在JTable的第一列的所有行中设置图标。 public class iconRenderer extends DefaultTableCellRenderer{ public Component getTableCellRendererComponent(JTable table,Object obj,boolean isSelected,boolean hasFocus,int row,int column){ imageicon i=(imageicon)obj; if(obj==i) setIcon(i.imageIcon); setBorder(UIManager.getBorder(“TableHeader.cellBorder”)); setHorizontalAlignment(JLabel.CENTER); return this; } } public class imageicon{ ImageIcon imageIcon; imageicon(ImageIcon icon){ imageIcon=icon; } } 以及我的BuildTable()方法中的以下行。 public void SetIcon(JTable table, int col_index, ImageIcon icon){ table.getTableHeader().getColumnModel().getColumn(col_index).setHeaderRenderer(new iconRenderer()); table.getColumnModel().getColumn(col_index).setHeaderValue(new imageicon(icon)); } 我们如何为第一列的所有行设置它? 我已尝试使用for循环,但还没有得到行迭代来设置图标。 或者还有其他方法吗?

如何使JComboBox表编辑器具有普通JComboBox的设计?

我有一个JComboBox用作JTable的编辑器。 在图片中,您可以在标有Produs的列中看到它们。 我想在网格单元格中使用独立JComboBox的设计,特别是combobox的右侧部分,网格单元格中缺少三角形,因此用户将知道网格单元格是combobox而没有点击其中一个。 如何将JComboBox ( IsBackFlush )的设计应用于网格中的JComboBoxes ? 基本上,我如何根据comboBox2的设计设计comboBox1 ? 谢谢。

JTable +排序特定字段

我有一个JTable并添加了排序。 现在,JTable有5列,日期字段中的第2列转换为DD / MM / YYYY,并显示在单元格的JTextField中。 当我将它排序为字符串并且我将日期混淆时,如何更改该特定列的排序行为? 例如。 按照ASC顺序排序后,我得到了这个: 01/02/2012 01/03/2011 01/04/2011 01/05/2011 01/06/2011 01/07/2011 01/08/2011 01/09/2011 01/10/2011 01/12/2011 这是错的,我应该得到结果 01/03/2011 01/04/2011 01/05/2011 01/06/2011 01/07/2011 01/08/2011 01/09/2011 01/10/2011 01/12/2011 01/02/2012 我的代码现在看起来像这样排序 List sortKeys = new ArrayList(); sortKeys.add(new SortKey(2, SortOrder.ASCENDING)); table.getRowSorter().setSortKeys(sortKeys); 我应该仅针对该特定列更改哪些内容?