Tag: jtable

在JTable中编辑单元格时提供其他行为

我正在用Java创建一个应用程序。 在编辑JTable中的单元格时,我需要提供其他行为。 理想情况下,当编辑后细胞失去焦点时会发生这种情况。 根据一些后期处理,我可能会重置单元格的值。 我尝试使用单元格编辑器,但它没有给我所需的行为。 在默认的JTable中,只有当我双击一个单元格时,它才变得可编辑。 但是在我的CellEditor实现中,细胞一旦成为焦点就变得可编辑。 这是My custom CellEditor的代码, public class ParameterDefinitionEditor extends AbstractCellEditor implements TableCellEditor{ private JTable table; private DefaultTableModel defaultTableModel; public ParameterDefinitionEditor(DefaultTableModel defaultTableModel, JTable table) { super(); this.table = table; this.defaultTableModel = defaultTableModel; TableColumnModel columnModel = table.getColumnModel(); columnModel.getColumn(0).setCellEditor(this); } public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { […]

如何获得过滤后的模型?

我正在使用JTables显示用户可以过滤的信息,如果用户在过滤后保存,我想将过滤后的表保存到文本文件中以保持持久性(意味着任何过滤掉的内容都不会保存到文本文件中)。 对于过滤我只是按照本教程的过滤部分: http : //download.oracle.com/javase/tutorial/uiswing/components/table.html#sorting并且它工作正常,但我不确定是否有任何方法我可以获得当前显示的模型,而不是包含尚未过滤掉的所有内容的基础模型。 有什么方法可以用我过滤的方式来做到这一点吗? 谢谢!

如何在JTable中隐藏网格线

我试图隐藏JTable的网格线但没有结果。 即使尝试更改网格线的颜色也不起作用。 这是我的代码: // build the table tableView = new JTable(ttm); //Specifify the selection Listener and model listSelectionModel = tableView.getSelectionModel(); listSelectionModel.addListSelectionListener(new SharedListSelectionHandler(tableView)); tableView.setSelectionModel(listSelectionModel); //Add a mouse listener to our table and implement double click event tableView.addMouseListener(new MouseAdapter(){ public void mouseClicked(MouseEvent e){ //If double click in a message show the Message Details window if (e.getClickCount() == […]

如何将JTable导出到.csv文件?

就像标题所暗示的那样,我正在寻找一种将带有数据的jtable导出到.csv file 。 我不是在寻找其他选项然后是CSV ,因为CSV是我的程序的要求。 我一直在寻找某些东西,比如apache.camel bindy ,我找不到足够的信息来理解如何使用它。 什么推荐? 如果某人有一个体面的使用bindy例子,我也不介意。 友好的问候, Skillcoil

表单中的Java JComboBox在单击单元格之前未显示

好的,所以我有一个表设置,我已经在这里的示例中添加了一个JComboBox到特定的单元格,但由于某种原因,combobox将不会显示,直到选中该单元格。 如果我选择该单元格,combobox将打开它的列表供我选择。 无论我是否更改选择,如果单击表格中的另一个单元格,它将显示从combobox中选择的项目的文本,就好像它是根据需要显示在表格中的简单字符串一样。 我的问题是:如何让它在JComboBox中显示所选值而无需先选择单元格? 编辑:我忘了提到的一件事是; 而不是像之前那样手工声明DefaultTableModel data ,而是稍后使用model.addRow();将项目添加到DTM中model.addRow();

无法按日期对JTable进行排序

我有一个JTable,其中第一列是Date。 但是,这实际上不是Date对象,它是一个以英国格式显示日期的String 。 以下是我的代码 private class DisplayAllRevenue extends ComponentAdapter { @Override public void componentShown(ComponentEvent e) { DefaultTableModel model = (DefaultTableModel) allRevenueTable.getModel(); model.setRowCount(0); dbConnector = new DBHandler(); dbConnector.makeConnection(); java.sql.Date dateOfLastUpdate=null; ResultSet portfolioRs = dbConnector.selectAllDetails(getPortfolioData); try { if(portfolioRs.isBeforeFirst()==false) { JOptionPane.showMessageDialog(null,”Empty”); } else { while(portfolioRs.next()) { String provider = portfolioRs.getString(“Provider Name”); String client = portfolioRs.getString(“Client Name”); int idPortfolio […]

尽管已经检查过,但JTable中的复选框始终返回false

我在JTable中使用复选框,itsef是JPanel一部分。 最初我使用的是JOptionPane ,点击OK按钮后我获得了价值,但现在我在JFrame添加了JPanel 。 当我单击右上角的X符号时,它不会检索单击的复选框的值,但能够获取其他列的值。 代码段如下: DefaultTableModel dtm = new DefaultTableModel(rowData, columnNames) { }; for (int i = 0; i < records.size(); i++) { // System.out.println(records.get(i)); singleRecord = records.get(i).toString().split("%"); Pages = singleRecord[0].toString(); BKey= singleRecord[1].toString(); Title = singleRecord[2].toString(); Author = singleRecord[3].toString(); TimeStamp = singleRecord[4].toString(); dtm.addRow(new Object[] { Boolean.FALSE ,Pages,BKey,Title,Author,TimeStamp}); } table = new javax.swing.JTable(dtm) { public […]

具有Excel等条件格式的Jtable

JTable是否支持像excel那样的3种颜色条件格式。 例: 我检查了谷歌,所有我都能找到一次将单一颜色分配给符合条件的单元格。 我想知道我是否可以只提供三种颜色,Jtable会根据单元格的值分配颜色的阴影。

setSelectionBackGround()不为自定义渲染的单元格设置颜色

我正在使用自定义CellRenderer(TableCellRenderer的一个实例)来渲染下面描述的CLOSE列的Cells。 我为表格的setSelectionBackGround设置了一种颜色,但是所选列的bg颜色的单元格在选中时不会被绘制。 请给我任何见解,我将非常感激。 这是我的TablecellRenderer类 class LabelRenderer extends JLabel implements TableCellRenderer { Font f; Color selectionBG; Color upDirection; LabelRenderer(){ super(); f=new java.awt.Font(“Trebuchet MS”, 0, 12); selectionBG = new java.awt.Color(204, 255, 255); upDirection= new Color(0,102,0); } @Override public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { //structure of passing array […]

有没有办法将ArrayList放入JTable,其中每一行是ArrayList的下一个索引?

我有许多不同的数组列表。 我希望每个索引都是JTable中的新行,但我不知道该怎么做。 我做了一个for循环,但它没有工作。 有没有办法用数组列表而不是数组填充JTable? public TableCreator() { super(new GridLayout(1,0)); String[] columnNames = {“Item Type”, “Description”, “Size”, “Price”}; // for(int i=0; i<ShoppingFunctions.cartType.size(); i++){ for(int i=0; i<GUI.size.size(); i++){//FIX!!!! item = ShoppingFunctions.cartType.get(i)+"\n"; described = GUI.describe[GUI.imageNum]; sizes = GUI.size.get(i); price = ShoppingFunctions.cartPrice.get(i)+"\n"; }//end of for Object[][] data = {{item, described, sizes, price}}; final JTable table = new JTable(data, columnNames); […]