Tag: jtable

自动调整Jtable列以适合内容

我试图根据里面的数据匹配JTable列宽。 我的代码: for(int column = 0; column < gui.testsuiteInfoTable.getColumnCount(); column ++){ int width =0; for (int row = 0; row < gui.testsuiteInfoTable.getRowCount(); row++) { TableCellRenderer renderer = gui.testsuiteInfoTable.getCellRenderer(row, column); Component comp = gui.testsuiteInfoTable.prepareRenderer(renderer, row, column); width = Math.max (comp.getPreferredSize().width, width); System.out.println(width); } TableColumn col = new TableColumn(); col = gui.testsuiteInfoTable.getColumnModel().getColumn(column); System.out.println(width); col.setWidth(width); gui.testsuiteInfoTable.revalidate(); } } […]

Java:选定行的索引在排序时不会更改

我有一个Jtable,我在其上调用了方法table1.setAutoCreateRowSorter(true); 。 所以这很好用。 但我在我的JFrame类中也有一个方法,当我按下按钮时会触发它。 它使用此代码获取选定的行索引int selectedRows[] = this.table1.getSelectedRows(); 。 并显示所选间隔中对应的第一行的编辑窗口。 问题是,如果我没有点击列的标题(我的意思是我根本不对它们进行排序),我的方法是完美的。 但是当我对行进行排序时,行的索引似乎根本没有变化 – 从而导致旧行的编辑窗口最初在进行任何排序之前处于该位置。 我正在使用JDK 6可以给任何提示吗?

TableModel与ColumnModel:谁拥有列值?

JTable.getModel().getColumnName()和JTable.getColumnModel().getColumn(index).getHeaderValue()什么JTable.getColumnModel().getColumn(index).getHeaderValue() ? 这两个似乎没有共享任何数据。 我的猜测是TableModel.getColumnName()表示列的文本表示,而TableColumn.getHeaderValue()和TableColumn.getHeaderRenderer()确定列的外观(它不需要是纯文本)。 什么保证两者保持同步? 如果两者发生冲突会怎样?

jTable右键单击弹出菜单

我有一个SQL数据库,我正在开发一个允许我添加/删除/修改记录的程序。 我已经设法添加我正在编辑/删除它们的记录。 我想在表中显示现有记录,所以我使用jTable。 我在网上发现了一些代码并对其进行了修改以提取记录并将其显示在jtable中,但我不知道如何编写右键并显示弹出菜单。 在该弹出菜单中,我想显示删除记录和修改记录等选项。 这是我使用的代码,使jTable和显示数据: private void menuDeleteAuthorActionPerformed(java.awt.event.ActionEvent evt) { TableFromDatabase deleteAuthor = new TableFromDatabase(); deleteAuthor.pack(); deleteAuthor.setVisible(true); Vector columnNames = new Vector(); Vector data = new Vector(); try { Connection connection = DriverManager.getConnection( url, user, password ); // Read data from a table String sql = “SELECT * FROM Authors”; Statement stmt = connection.createStatement(); […]

如何实现具有可变行高的jtable

以前的两个问题( 这里和这里 )的答案都没有解决我的问题。 我有一个多列jtable,我想根据字符串中的换行符(“\ n”)在单元格中的多行显示某些列的字符串内容。 每个字符串的换行符数是随机的,仅在运行时才知道。 只有受影响的行必须在所有列中调整到新高度。 每个受影响的列可能有不同数量的行,并且需要将行高调整为列的最大高度。 我该怎么做呢? 如果可能的话,非常感谢一些示例代码。 TIA

如何将数据从JTable导出到CSV

我只是在启动一些代码从JTable中提取值时遇到问题,这样我最终可以将它们称为CSV文件,以便在Excel上查看。 目前我使用以下代码创建了一个JTable: package com.alpha; import javax.swing.*; import java.awt.*; public class JTableComponent{ public static void main(String[] args) { new JTableComponent(); } public JTableComponent(){ JFrame frame = new JFrame(“Whiteboard Test”); JPanel panel = new JPanel(); String data[][] = {{“Company A”,”1000″,”1″},{“Company B”,”2000″,”2″}, {“Company C”,”3000″,”3″},{“Company D”,”4000″,”4″}}; String col[] = {“Company Name”,”Shares”,”Price”}; JTable table = new JTable(data,col); panel.add(table,BorderLayout.CENTER); frame.add(panel); frame.setSize(300,200); […]

选中时显示JTable行的信息

选中后如何显示JTable行的信息? 我将简要解释一下我要做什么,然后发布我创建的SSCCE,以防我的任何解释令人困惑。 我希望能够单击表格中的任何行并在面板上显示该信息。 我不确定我需要用什么来完成工作。 我想我需要使用: table.getSelectedRow() MouseListener() ListSelectionListener() 我以前没有使用过Listeners,所以我只知道那些阅读文章/文档的人,同时研究我需要做什么来完成这项工作。 我对如何在我的JPanel上显示信息感到有些困惑。 该面板在主类中创建,其中表在其自己的类中创建。 我感谢任何帮助和建议。 示例来源: import javax.swing.JFrame; import javax.swing.JSplitPane; import javax.swing.SwingUtilities; import java.awt.BorderLayout; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.ListSelectionModel; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableModel; public class SwingTesting { private final JFrame frame; private final TablePane tablePane; […]

在JTable中创建鼠标hover信息面板? 工具提示可能还不够

我想显示一个使用Java Swing鼠标hover在JTable单元格上的信息框,因此有多个部分 如何捕获表格单元格中的鼠标hover事件? 我必须能够设置单元格内容,然后获取数据。 如何在鼠标hover在该单元格上时显示包含动态服务器数据的面板/框? 如何缓存信息面板/框,以便我不必在每个鼠标上查询服务器? 例: 在表格单元格中输入:94903。在选项卡或输入后,单元格设置为数字。 在鼠标hover时,它会显示一个包含姓名,地址,电话号码,电子邮件等的框。 谢谢!

不要更新JTable

我找到了更新数据的示例,但它使用了DefaultTableModel。 当我创建自己的TableModel和我自己的数据类时,当我将数据添加到JTable时它不会更新。 如何向TableModel添加监听器? 这是我的代码: package by; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.util.LinkedList; import javax.swing.AbstractAction; import javax.swing.Box; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.SwingUtilities; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.AbstractTableModel; public class DialogEg { private static void createAndShowGui() { MainWin mainPanel = new MainWin(); JFrame […]

如何在JTable中隐藏(隐藏)行?

有什么办法吗?