标签: tablemodel

如何使用自定义TableModel删除JTable中的行

我一直在阅读类似于我的帖子,并阅读Java教程页面,但我似乎无法让这个工作.我不确定我是否遗漏了一些基本的东西......

我有一个自定义表模型,我需要能够从中删除行.该表初始化为空,并通过组合框和添加按钮添加行.还有一个删除按钮,需要从表中删除所选行.

class TableModel extends AbstractTableModel
{
    private String[] columnNames = {"Enabled", "Value" };
    protected Class[] columnClasses = new Class[] { Boolean.class, String.class };

    public int getColumnCount()             { return columnNames.length; }  
    public int getRowCount()                { return filters.size(); }
    public String getColumnName(int col)    { return columnNames[col]; }
    public Class getColumnClass(int col)    { return columnClasses[col]; }

    public Object getValueAt(int row, int col) { ... }

    public void setValueAt(Object value, int row, int col) { ... }

    public void addRow(String value) …
Run Code Online (Sandbox Code Playgroud)

java jtable tablemodel delete-row abstracttablemodel

1
推荐指数
1
解决办法
1万
查看次数

从其 TableModel 获取 JTable

我有一个函数触发:

public void tableChanged(TableModelEvent e){...}
Run Code Online (Sandbox Code Playgroud)

我从 TableModelEvent 得到了 TableModel :

TableModel model = (TableModel)e.getSource();
Run Code Online (Sandbox Code Playgroud)

但是我需要 JTable 才能在 TablecellBalloonTip 构造器中使用它。如何从 TableModel 中获取 JTable?

java swing jtable tooltip tablemodel

1
推荐指数
1
解决办法
5276
查看次数

来自 Java Bean 字段的对象数组

有没有办法获得Java Bean字段的Object数组?我有一些表示数据库表 (Hibernate) 的 bean 类,我需要从它们中检索 jtable 模型的对象数组,但似乎唯一的方法是为每个类的每个字段调用 getXXX 方法 - 很多要做的工作。

java hibernate javabeans tablemodel

1
推荐指数
1
解决办法
2044
查看次数

JTable和Table模型什么时候用?

我对这两者之间的区别有所了解。但是,我对何时使用何时使用有些困惑。我只知道,

  • 要显示 JTable,请创建一个 JTable 并为其设置相应的表模型。
  • 任何时候,如果我们想改变那个表中的数据,改变模型中的数据,那么这些改变就会反映在视图中。

我们可以从视图和模型中获取表的值。这是我感到困惑的地方。如果发生任何类似(行选择)的事件,那么我必须从中获取值?是从视图还是模型?考虑到 JTable 的排序和过滤,使用的最佳实践是什么?

java swing jtable tablemodel defaulttablemodel

1
推荐指数
1
解决办法
2094
查看次数

使用未完成的编辑关闭其JFrame时保存JTable的内容

我遇到了以下问题:我有一个JTable,它的on tablemodel坐在JFrame上.tablemodel使用自己的hashmap进行备份以存储内容.该表有两列,右侧可编辑.

通常,用户在右侧更改某个值,然后按下Enter按钮,该按钮将触发调用我的保存功能的tabledatachanged事件.然后可以关闭框架.

但是,有些用户只是简单地编辑单元格然后关闭窗口而不按Enter键,所以我没有机会保存表格.我知道如何在框架即将关闭时编写事件,但我不知道如何在完成编辑的同时检索"未完成"编辑的内容.

我想它与celleditors有关,我甚至尝试使用table.getCellEditor()来返回活动的但是它返回null.

谢谢您的帮助!

java user-interface swing jtable tablemodel

1
推荐指数
1
解决办法
521
查看次数

删除行时Jtable刷新

我有一个表格,正确显示txt文件中的所有图书清单.我添加了一个新的按钮框架,当获取id号为其文本字段时,如果找到,从文件中删除它的记录,但如果我也要从表中删除,我应该重新显示表格框架.我想,当从文件中删除一条记录时,我的表会自动刷新并且不需要重新显示表格框架.我的代码是这样的:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;

public class ReadBookFileToListM {

public ReadBookFileToListM(){
   final ReadBookFileToList rbftl=new ReadBookFileToList();
   final JFrame Bframe=new JFrame("All Book List");
  final JTextField tf1=new JTextField("             ");
  final JLabel foundlable=new JLabel();
    JButton button1=new JButton("Back To Main Page");
    JButton button2=new JButton("Exit");
    JButton button3=new JButton("Delete Book");
    button1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            Bframe.setVisible(false); …
Run Code Online (Sandbox Code Playgroud)

java swing jtable tablemodel

1
推荐指数
1
解决办法
5354
查看次数

在jTable中设置XML值

我有一个jTable,现在我想在其中添加XML文件的内容.我不知道如何浏览XML文件,我目前只能操作数据(重写,删除)并获取单个标记的值,而不是所有.我正在使用JDOM

我的XML-File看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<app>
  <!-- Pfad für Templates und speicher ort für die Entity.java-->
  <Entity>
    <Name>Aposting</Name>
    <Art>0</Art>
    <Datum>Wed Nov 19 10:51:10 CET 2014</Datum>
  </Entity>

  <Entity>
    <Name>Aposting</Name>
    <Art>1</Art>
    <Datum>Wed Nov 19 11:30:34 CET 2014</Datum>
  </Entity>

  <Entity>
    <Name>Aposting</Name>
    <Art>1</Art>
    <Datum>Wed Nov 19 15:21:12 CET 2014</Datum>
  </Entity>

  <Entity>
    <Name>Aposting</Name>
    <Art>2</Art>
    <Datum>Thu Nov 20 8:01:10 CET 2014</Datum>
  </Entity>

</app>
Run Code Online (Sandbox Code Playgroud)

我想在这样的表中显示它:

在此输入图像描述

谢谢您的帮助

编辑:

我做了一个Custom模型

package TableTest;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;

/**
 *
 * @author Administrator
 */
public …
Run Code Online (Sandbox Code Playgroud)

java xml swing tablemodel

1
推荐指数
1
解决办法
1233
查看次数

如何在java中将布尔对象类型设置为表列

我有一个JTable具有DefaultTableModel.现在我想更改表列标题和列数据类型(例如: - Boolean,String,Object等).我尝试做如下.

DefaultTableModel model = (DefaultTableModel) list_table.getModel();                        
list_table.setModel(new javax.swing.table.DefaultTableModel(new Object[][]{}, new String[]{"", "ID", "Name", "Age","Address", "Contact", "Gender", "Civil Status" }));
updateTable(); 
Run Code Online (Sandbox Code Playgroud)

""列对象类型应该是boolean.But我无法将对象类型更改为布尔值.此外,我在线程环境中运行它.

有任何想法.

java swing jtable tablemodel

1
推荐指数
1
解决办法
961
查看次数

在已构造的表上设置TableModel

您可以创建表模型并将其添加到表中

TableModel tm = new TableModel();
JTable table = new JTable(tm);
Run Code Online (Sandbox Code Playgroud)

但是,如果我初始化一个表

JTable table = new JTable();
Run Code Online (Sandbox Code Playgroud)

然后在以后创建一个表模型...

TableModel tm = new TableModel();
tm.addValueAt(...);
...
Run Code Online (Sandbox Code Playgroud)

有没有办法将这个表模型添加到原始表中?

其实我已经创建了自己的类来扩展TableModelJTable了,我以为我可以简单地重建该表中给出的新表的模式,但这似乎并没有工作.

java swing constructor jtable tablemodel

0
推荐指数
1
解决办法
115
查看次数

如何将两个Jtable合并为第三个Jtable?

我有两个具有相同标题名称和列数的JTable.现在我想创建第三个JTable,当我单击merge Button时,它包含这两个JTable的所有值.请建议我任何答案.

java swing jtable tablemodel

0
推荐指数
2
解决办法
1757
查看次数

JTable(BeanTableModel)没有更新/刷新 - Java Swing

我有2个面板.一个用户插入数据,另一个JTable用于显示结果的位置.

我的问题是,当用户按下确定(在我的情况下应用)时JButton,数据被计算但未显示在JTable,没有任何变化JTable.

对于我,JTable我使用的Bean Table Model是tips4Java(http://tips4java.wordpress.com/2008/11/27/bean-table-model/).

一个奇怪的事情是,如果我在程序启动时向表发送数据(让我们调用此数据'A'),它会显示在表中,如果稍后我尝试更新表,则表不会更新.但是,当我在启动时不向表发送数据但尝试更新/发送带有数据"A"的表时,它不会更新.

所以我的问题是,为什么不JTable显示我发送的任何数据?

这是我的代码:

JButton监听,启动处理并将数据发送到表:

crashForm.setFormListener(new FormListener() {
    @Override
    public void formEvent(OptionsFormEvent oe) {
        String readTable = oe.getReadFromTable();
        int access = oe.getAccess();
        int transition = oe.getTransition();
        boolean smooth = oe.isTrainCrash();
        ArrayList<String> allTrains = new ArrayList<>();
        List crashedTrainList = new ArrayList<>();

        try {
            allTrains = controller.getUniqueTrains(controller.connectServer(), readTable, "trainid");
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "An error occured while getting trains data\n" …
Run Code Online (Sandbox Code Playgroud)

java swing jtable tablemodel

0
推荐指数
1
解决办法
1372
查看次数

如何将这两个渲染器应用于同一个JTable?

如何将单元格渲染器和表格模型应用于同一个JTable?问题是,如果我应用单元格渲染器,JTable则不显示Boolean类型字段的复选框.但是,如果我不应用单元格渲染器,则时间字段(JodaTime)格式不正确.

        model = new DefaultTableModel(data, columnNames) 
        {

            private static final long serialVersionUID = 1L;

            @Override
            public int getColumnCount() {
                return columnNames.length;
            }

            @Override
            public int getRowCount() {
                return data.length;
            }

            @Override
            public String getColumnName(int col) {
                return (String) columnNames[col];
            } 

            @Override
            public Object getValueAt(int row, int column) {
                return data[row][column];
            }

            @Override
            public Class getColumnClass(int column) {
                return (getValueAt(0, column).getClass());
            }

            @Override
            public void setValueAt(Object value, int row, int column) {
                data[row][column] …
Run Code Online (Sandbox Code Playgroud)

java swing jtable tablecellrenderer tablemodel

0
推荐指数
1
解决办法
153
查看次数