Tag: jtable

如何打印出JTable的特定行/列?

我能够打印完整的JTable,但实际上我想要更多地打印JTable的特定部分,例如从第10行到第50行以及第70列到第150列。怎么做?

使用TransferHandler进行JTable拖放

目前我有两张表Table-A, Table-B 。 我的任务是将行从Table-A拖到Table-B或将Table-B中的行拖到自身上。 使用TransferHandler我已经完成了这项任务。 但我的问题是,我无法识别哪个表行被拖到Table-B ..即,从表-A到表-B或从表-B到自身。 在TransferHandler exportData方法中,我向其中一个列添加了一些额外的数据。 基于此,当我通过importData方法导入数据时,我能够找出它使用我添加数据的特定列来自哪个表。 我知道这根本不推荐..所以我需要知道是否有一个很好的方法来解决这个问题?

如何在添加新行后进行JTable刷新

在我向JTable添加新行之后。 写入的信息转到txt文件,但我的JTable没有显示最后一个原始文件。 但是,如果我关闭程序并再次运行它,那么表中的信息就会出现。 那么,有没有办法刷新JTable的数据而不关闭应用程序并再次运行它? String[] columns = {“nume”, “compozitie”, “indicatii”, “contraindicatii”, “administrare”, “pret”, “compensabil”, “stoc”}; Object[][] data = null; try { File file = new File(“medicamente.txt”); FileReader fileReader = new FileReader(file); BufferedReader bufferedReader = new BufferedReader(fileReader); data = new Object[100][]; String line; int numLines = 0; while ((line = bufferedReader.readLine()) != null) { data[numLines] = […]

Java:JTable更改侦听器,“对象无法转换为字符串”错误

我有一个JTable ,以及一个应该控制程序对各种动作的响应的类,我写的第一个是用于单元格更改事件。 每行都是从Part对象生成的,并且每列的列类都相应地设置。 Part(String partName, String make, String partNumber, String altPartNumber, Double price, Integer quantity, String description, Boolean isAutomotive, Boolean isMarine, Boolean isIndustrial) { //…code not shown… } 零件对象存储在可序列化的ArrayList 。 本质上,事件处理代码需要做的是使用从JTable获得的更新数据更新此ArrayList特定部件对象的参数值。 下面的代码演示了我想如何做到这一点; 这里出现标题中提到的错误。 任何人都可以解释如何处理这个问题? public class EventController extends UI implements TableModelListener { // Declarations: private int row; private int column; private Part partToChange; // …Omitted […]

将arraylist数据添加到JTable

我有一个ArreayList,它包含PRIvariable(类的名称)类数据。 下面显示了我的java代码部分。 所以现在我想将这个Arraylist数据放到Jtable中。 我怎样才能做到这一点。 在这里,我已经将pri.dateText , pri.sum , pri.count添加到ar(arraylist) PRIvariable pri=new PRIvariable(); while (reader.ready()) { String line = reader.readLine(); String[] values = line.split(“,”); if(values[2].equals(pri.incDate)){ if(values[4].equals(“KI”)){ pri.dateText=values[2]+” “+values[4]; pri.count=pri.count+1; pri.sum = pri.sum+Integer.parseInt(values[7]); } } } System.out.println(pri.dateText+” “+pri.sum+” “+pri.count); ar.add(pri);

Java,如何从另一帧中刷新一帧中的JTable

所以我有一个MainFrame类,里面有一个JTable,列出了存储在DB中的所有产品。 JButton在监听器的帮助下将打开AddProduct(另一个类,另一个窗口/框架),我可以在其中添加产品。 不幸的是,一旦AddProduct添加了新产品和autocloses,我不确定如何在MainFrame中更新/重新validationJTable。 有些人可以给我一些想法,我怎么能轻易解决这个问题? 由于程序相当大,以下是它的相关部分:来自MainFrame.java public JPanel tabProducts() { JPanel panel = new JPanel(new MigLayout(“”,”20 [grow, fill] 10 [grow, fill] 20″, “20 [] 10 [] 20”)); /** Labels **/ JLabel label = new JLabel(“List of all available products”); /** Buttons **/ JButton add = new JButton(“Add product”); add.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) […]

在JScrollPane和JPanel中设置JTable的大小,使用JFrame的大小

我希望表格的宽度与帧的宽度相同,当我调整帧的大小时,表格也需要resize。 我认为JTable setSize()无法正常工作。 你能帮助我吗? import java.awt.Color; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.SwingUtilities; public class Main extends JFrame { public Main() { setSize(400, 600); String[] columnNames = {“A”, “B”, “C”}; Object[][] data = { {“Moni”, “adsad”, 2}, {“Jhon”, “ewrewr”, 4}, {“Max”, “zxczxc”, 6} }; JTable table = new JTable(data, columnNames); JScrollPane tableSP […]

在netbeans中着色jtable行

我是java的新手。 我想要做的是创建一个显示对象列表的表。 我想要的是根据对象成员的值为JTable中的特定行赋予颜色。 我看到很多选项,比如使用“TableCellRender”和所有。我也尝试过它们。 但问题是我使用Netbeans IDE,所以我不是通过代码创建表。 有人可以帮我改变NetBeans定义表格的行颜色吗? 提前致谢。

Java JTable频繁更新?

我正在编写一个能够处理频繁更新的JTable。 通常,这个JTable有大约1000行数据,而且有些列会经常更新,因为它们的价值来源于在市场时间内移动很多的股票价格。 我面临的问题是当大量的行(例如80%)正在更新时,JTable变得非常慢,持续20-30秒左右,分析器显示EDT线程非常繁忙,处理tableChanged调用。 我尝试通过1)压缩fireTableCellUpdated来折叠更改2)如果 50行更改,则为整个表调用fireTableDataChanged。 它更好,但是当频繁更新时仍然很慢,我的理解是fireTableDataChanged也很慢。 因此,如果数据更新频繁,将频繁调用fireTableDataChanged,并且GUI会感觉迟钝。 有没有经验丰富的人可以推荐使用fireTableRowsUpdate,fireTableDataChanged和fireTableStructureChanged的最佳实践,以提高GUI的活力和性能? 如果你有指向解决这个问题的示例代码的指针,它会更好。 非常感谢 安东尼斯

为什么JTable在渲染时使TableModel不可序列化?

所以最近我在这里为我们开发了一个工具来配置某些应用程序。 它不需要真正棒极了,只需要生成一些SQL脚本的基本工具,并创建几个XML文件。 在此期间,我使用自己的AbstractTableModel实现创建了一系列JTable对象。 在我构建了所有内容之后,我开始使用AbstractTableModel测试保存和加载(仅使用ObjectStreamWriter写入磁盘)序列化失败。 我几乎整天都在弄清楚发生了什么。 当我尝试序列化它们时,我会在java.lang.reflect.Constructor上得到一个NotSerializableException。 我不知道这是什么,因为我的表模型只包含可序列化的实体,我附加的所有监听器也是可序列化的,父类也是可序列化的。 经过大量的挖掘和一些有用的post后,我发现当你将一个TableModelListener添加到一个AbstractTableModel实现时,除了你添加的一个监听器之外还添加了另一个监听器,类型为javax.swing.event.TableModelListener,它不是t serializable(参见http://docs.oracle.com/javase/7/docs/api/javax/swing/event/TableModelListener.html的接口,我不知道实现)。 编辑模型不会添加这个非可序列化的侦听器,JTable会这样做。 我的问题基本上是,为什么这个对象会在内部添加自己的非可序列化对象,从而否定事实上它实际上实现了Serializable? 这是我应该报告的错误吗? 仅供参考我的工作就是简单地删除所有的监听器,序列化,然后重新添加监听器。 反序列化时我只需要添加我创建的那个,模型再次创建另一个。 编辑尝试使用通过调用setValueAt()方法提供的序列化程序类序列化此模型。 import java.io.Serializable; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.AbstractTableModel; public class BlankTableModel extends AbstractTableModel implements Serializable { /** * */ private static final long serialVersionUID = 6063143451207205385L; public BlankTableModel() { this.addTableModelListener(new InnerTableModelListener()); } @Override public void setValueAt(Object o, int x, int […]