Tag: jtable

jcombobox作为单元格编辑器java.awt.IllegalComponentStateException:必须在屏幕上显示组件以确定其位置

我使用自定义JComboBox作为JTable中的单元格编辑器。 当用户使用键盘控件进入单元格时,它会尝试打开弹出窗口。 这会导致以下错误: java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location at java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:1964) at java.awt.Component.getLocationOnScreen(Component.java:1938) at javax.swing.JPopupMenu.show(JPopupMenu.java:887) at javax.swing.plaf.basic.BasicComboPopup.show(BasicComboPopup.java:191) at javax.swing.plaf.basic.BasicComboBoxUI.setPopupVisible(BasicComboBoxUI.java:859) at javax.swing.JComboBox.setPopupVisible(JComboBox.java:796) 我看过一些文章说这是一个已知的问题,解决方案是设置: comboBox.putClientProperty(“JComboBox.isTableCellEditor”, Boolean.TRUE); 但这并没有帮助。 无论如何这应该做什么? 我读过的关于这个的所有主题和文章对于问题的本质都非常模糊。 有没有人对这个问题发生的原因有什么了解? 我的combobox是非常自定义的,所以它有助于理解问题的基础,所以我可以修复代码。 这是在捕获的combobox上的焦点获取事件上触发并调用setPopupVisible(true); public void focusGained(java.awt.event.FocusEvent e) { //if focus is gained then make sure we show the popup if it is […]

apache poi:将jtable保存到文件中

我最近开始使用java,当我需要从jTable开始创建一个excel文件时,我遇到了apache poi库的一些问题。 我已经阅读了许multithreading,并提出了一些不起作用的代码(即使这很简单,有很多例子,这让我看起来更愚蠢)而且我希望有人可以帮助我。 以下是问题: a)为什么写入excel文件的for循环不填充每个单元格? (excel文件中唯一包含数据的行是第六行,这也让我想知道为什么它会计算getRowCount / Column方法的表模型中的空项。所以我知道它打印的是自定义String而不是表本身,但保留点b) b)我应该如何使用jtable模型项来填充excel文件,因为在创建表时我必须选择Object作为行类型? (我也遇到了这类对象的问题,只要它是一个字符串||整数就没有任何问题,但是这个表应该是两者的混合,当你尝试时它似乎不起作用使用setCellValue()方法与String || integer …或至少我无法使其工作的东西 c)让我说我以后想要从我之前创建的文件中填充jtable,在使用bufferedReader类读取文件后,我是否只需要使用解决方案指向b)(另一种方法)? 免责声明:代码的第一部分是由netbeans自动生成的,你可以告诉我,我想出的hssf部分是在最后,但我想你可能想要看到整件事,抱歉,如果它看起来有点凌乱。 这是代码: package poitest; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JTable; import javax.swing.table.TableModel; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; public class POITestFrame extends javax.swing.JFrame { /** * Creates new form POITestFrame */ public POITestFrame() { initComponents(); […]

如何获取JTable标头以显示整个列名而不是缩短它们?

我有一个JTable,我填充了一个扩展AbstractTableModel的类。 问题是列太短而无法显示列名。 我已经关闭了Jtable AutoResizeMode属性,但仍然会发生缩短。 我该如何解决这个问题?

JTable列跨越

我正在尝试制作一个可用列跨度的JTable 。 具体来说,我希望将JTable嵌套在另一个JTable ,当用户单击以查看嵌套表时,它应该展开以按下下面的行并填充空白区域。 这与您在MS Access中可以嵌套表格的内容类似,单击行上的展开按钮将显示嵌套表格中的相应条目。 如果有人知道使用JTable执行列跨度的方法,请指点我正确的方向? 或者,如果您知道另一种方法,我愿意接受建议。 该应用程序正在使用Swing构建。 表中的元素,无论是高级还是低级,都必须在任何解决方案中都可编辑。 使用嵌套的JTable这不会是一个问题,任何其他解决方案也必须考虑到这一点。

创建TableModel并动态填充jTable

我想将读取lucene索引的结果存储到jTable中,这样我就可以通过不同的列对它进行排序。 从索引我正在阅读不同频率度量的术语。 表列是这些:[string term] [int absFrequency] [int docFrequency] [double invFrequency] 所以我在AbstractTableModel中我可以定义列名,但我不知道如何使用以下方法得到Object [] []数据: public static void FrequencyMap(Directory indexDir) throws Exception { ListredoviLista = new ArrayList(); //final Map map = new TreeMap(); ListtermList = new ArrayList(); IndexReader iReader = IndexReader.open(indexDir); FilterIndexReader fReader = new FilterIndexReader(iReader); int numOfDocs = fReader.numDocs(); TermEnum terms = fReader.terms(); while (terms.next()){ Term […]

将选定数据从frame1中的jtable复制到frame2中的另一个表

我在frame1中有一个JTable2,在frame2中有一个JTable1。 我想复制并从table2发送选定的数据到table1。 我该怎么做 ? private void jButton3MouseClicked(java.awt.event.MouseEvent evt) { String sql = “select * from table1 where Bill_No like ‘”+jTextField2.getText()+”‘”; try{ pst = conn.prepareStatement(sql); rs = pst.executeQuery(); jTable2.setModel(DbUtils.resultSetToTableModel(rs)); JFrame NewJFrame2 = new NewJFrame2(); NewJFrame2.setVisible(true); int i=0; while(rs.next()) { Object bno = rs.getString(“Bill No”); Object bamount = rs.getString(“Bill Amount”); Object btds = rs.getString(“TDS”); Object btax = […]

如果单元格值相同,则更改JTable中的单元格背景

我有一个JTable的问题。 当我选择一个单元格然后在我选择的JTable中有相同的值单元格时,该单元格突出显示背景红色。 我不知道该怎么办…. PS:对不起,我不知道如何在这里输入代码…… ;;

JTable-绘制单元格中的内容(文本)

我有一个JTable,我有一个方法,在表行和列中实现搜索,我使用正则表达式,我想绘制(例如黄色)与单元格中的正则表达式匹配的文本。 我想绘制文本而不是单元格的背景,只绘制与reg表达式匹配的单词部分。 我的搜索方法的代码是: for (int row = 0; row <= table.getRowCount() – 1; row++) { for (int col = 0; col <= table.getColumnCount() – 1; col++) { Pattern p = Pattern.compile("(?i)" + search_txt.getText().trim()); Matcher m = p.matcher(table.getValueAt(row, col).toString().trim()); if (m.find()){ isFound = true; table.scrollRectToVisible(table.getCellRect(row, 0, true)); table.setRowSelectionInterval(row, row); break; } } }

从数据库创建JTable

我正在尝试在我的库存系统中生成JTable,并且当用户单击查看帐单按钮, 我的帐单表单图像时,我想将数据库表中的记录显示到JTable。 数据库结构 Bill_Master Bill_Id(主键INT): – 存储票号 Bill_Date(日期):存储账单日期 Customer_Name(VARCHAR(50)):客户名称 Total_amt(NUMBER(6)):总账单金额 Cash_Disc(Number(2)):折扣 Grand_Total(数量(6)):总计(总计) UID(VARCHAR(10))商店谁生成账单。(员工ID) Bill_Details Bill_Detailid(INT PRIMARY KEY)详细的第1号法案 Bill_Id(Bill_Master的外键) Item_Id(库存的外键) 数量(INT) 率(编号(5)) 总(编号(5)) 我希望在用户使用查询单击“查看帐单按钮”时显示详细帐单 Select * from Bill_Master Inner join Bill_Details on Bill_Master.Bill_Id=Bill_Details.Bill_Id. 数据库连接类型:ODBC请帮助生成表。

jtable中的动态jcombobox项目

我试图在每一行中创建一个带有两个combobox的Jtable。 我检查了相关的教程,发现我可以在combobox中添加静态数据。 但是为什么我可以将动态数据加载到combobox中。 甚至,每当用户从该行中选择combobox1时,则基于此,combobox2将被更新。 有人可以帮我吗? 如果我从combobox中删除了removeAllItems() ,则combobox2将更新,但我无法添加新条目。 提前致谢。