java创建jtable_java – 如何将数据添加到在设计模式下创建的JTable?

我创建了一个包含三列表的初始JFrame,如下所示:

这个JFrame是在设计模式下创建的,所以现在在面板的构造函数中,我想加载一些数据,所以当用户选择打开这个JFrame时,数据就被加载了.

我的列数据类型是Object(通常“Status”用于表示共享状态的图像 – 活动或非活动),共享名称的字符串和连接到该共享的活动客户端数量的整数.

我的问题是,如何通过代码向JTable添加行?

解决方法:

以简化的方式(可以改进):

class MyModel extends AbstractTableModel{

private ArrayList list = new ArrayList();

@Override

public int getColumnCount() {

return 3;

}

@Override

public int getRowCount() {

return list.size();

}

@Override

public Object getValueAt(int rowIndex, int columnIndex) {

Register r = list.get(rowIndex);

switch (columnIndex) {

case 0: return r.status;

case 1: return r.name;

case 2: return r.clients;

}

return null;

}

public void addRegister(String status, String name, String clients){

list.add(new Register(status, name, clients));

this.fireTableDataChanged();

}

class Register{

String status;

String name;

String clients;

public Register(String status, String name, String clients) {

this.status = status;

this.name = name;

this.clients = clients;

}

}

}

然后,在面板的构造函数中:

MyTableModel mtm = new MyTableModel();

yourtable.setModel(mtm);

并添加一行:

mtm.addRegister("the status","the name","the client(s)");

编辑:

要更改列的标题名称:

TableColumn statusColumn = yourtable.getColumnModel().getColumn(0);

statusColumn.setHeaderValue("Status");

标签:tablemodel,java,swing,jtable,jframe

来源: https://codeday.me/bug/20191003/1847107.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Java中制作一个表格并对书籍进行添加和修改,可以使用Java Swing中的JTable组件和JOptionPane组件。以下是一个简单的示例代码,可以帮助你开始: ```java import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; public class BookTable { private static JTable table; private static DefaultTableModel model; public static void main(String[] args) { // 创建表格的数据和列名 Object[][] bookData = { {"Java编程思想", "Bruce Eckel", "机械工业出版社", "2002"}, {"深入浅出设计模式", "程杰", "电子工业出版社", "2014"}, {"Effective Java", "Joshua Bloch", "机械工业出版社", "2008"} }; String[] columnNames = {"书名", "作者", "出版社", "出版年份"}; // 创建DefaultTableModel对象并将数据和列名添加到其中 model = new DefaultTableModel(bookData, columnNames); // 创建JTable对象并将DefaultTableModel对象添加到其中 table = new JTable(model); // 创建JFrame并将JTable添加到其中 JFrame frame = new JFrame("书籍表格"); frame.add(new JScrollPane(table)); // 创建JOptionPane对象用于添加或修改书籍信息 JOptionPane optionPane = new JOptionPane(); optionPane.setMessageType(JOptionPane.PLAIN_MESSAGE); // 添加按钮 Object[] addBtn = {"添加", "取消"}; // 修改按钮 Object[] modifyBtn = {"修改", "取消"}; // 添加事件监听器 table.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { int row = table.rowAtPoint(evt.getPoint()); int col = table.columnAtPoint(evt.getPoint()); if (row >= 0 && col >= 0) { // 点击表格内单元格时弹出JOptionPane if (col == 0 || col == 1 || col == 2 || col == 3) { String oldValue = (String) model.getValueAt(row, col); String newValue = optionPane.showInputDialog(frame, "请输入新的值:", oldValue); if (newValue != null && !newValue.equals(oldValue)) { model.setValueAt(newValue, row, col); } } } } }); // 设置JFrame的大小并可见 frame.setSize(500, 300); frame.setVisible(true); } } ``` 在这个示例中,我们创建了一个名为`BookTable`的类,并在其中定义了一个`main`方法。在`main`方法中,我们首先创建了一个包含书籍信息的二维数组`bookData`,然后定义了一个包含表格列名的字符串数组`columnNames`。接下来,我们创建了一个`DefaultTableModel`对象并将数据和列名添加到其中,然后创建了一个`JTable`对象并将`DefaultTableModel`对象添加到其中。 我们还创建了一个`JOptionPane`对象用于添加或修改书籍信息,并定义了`添加`和`修改`按钮,以及相应的事件监听器。在事件监听器中,我们首先获取所选单元格的行和列,然后判断是否点击了表格内单元格。如果是,则弹出一个输入对话框(JOptionPane.showInputDialog)来要求用户输入新值。如果用户输入了新值并且新值不同于旧值,则将新值更新到表格中。最后,我们将JTable添加到JFrame中并将JFrame设置为可见。 这样,我们就可以在Java创建一个简单的表格,并对书籍进行添加和修改了。你可以根据需要自定义表格的样式和功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值