swing table

package com.test;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;

public class TableTest implements ActionListener{

 JFrame frame = new JFrame("JTable Test");
 JButton button = new JButton("增加");
 JTextField fname = new JTextField(20);
 JTextField lname = new JTextField(20);
 JPanel north = new JPanel();
 JLabel l1 = new JLabel("姓名");
 JLabel l2 = new JLabel("联系方式");
 DefaultTableModel dtm = new DefaultTableModel(0, 2);
 JTable table = new JTable(dtm);
 JScrollPane jsp = new JScrollPane(table);
 String [] temp = new String[2];
 
 public void init() {
  frame.setBounds(200, 200, 640, 480);
  frame.setLayout(new BorderLayout());
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.setResizable(false);
  north.add(l1);
  north.add(fname);
  north.add(l2);
  north.add(lname);
  button.addActionListener(this);
  north.add(button);
  dtm.setColumnIdentifiers(new String[] {"姓名", "联系方式"});
  frame.add(north, BorderLayout.NORTH);
  frame.add(jsp, BorderLayout.CENTER);
  frame.setVisible(true);
 }
 
 
 public static void main(String[] args) {
  TableTest tt = new TableTest();
  tt.init();
 }


 public void actionPerformed(ActionEvent e) {
  temp[0] = fname.getText();
  temp[1] = lname.getText();
  System.out.print(dtm.getRowCount());
  dtm.insertRow(dtm.getRowCount(), temp);
 }

}

### 更新或替换Swing JTable中的现有数据 在Java Swing应用程序中,`JTable`组件用于显示表格形式的数据。为了更新或替换`JTable`中的现有数据,通常通过修改其关联的模型来实现。具体来说,可以使用`DefaultTableModel`类作为表格模型[^1]。 #### 使用DefaultTableModel更新数据 下面是一个简单的例子,展示了如何创建一个带有初始数据的`JTable`并提供方法来更新其中的数据: ```java import javax.swing.*; import javax.swing.table.DefaultTableModel; import java.awt.*; public class TableUpdateExample { private JFrame frame; private DefaultTableModel model; public static void main(String[] args) { EventQueue.invokeLater(() -> { try { TableUpdateExample window = new TableUpdateExample(); window.frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } }); } public TableUpdateExample() { initialize(); } private void initialize() { frame = new JFrame(); frame.setBounds(100, 100, 450, 300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); String columnNames[] = {"Column 1", "Column 2"}; Object rowData[][] = {{"Row1-Cell1", "Row1-Cell2"}, {"Row2-Cell1", "Row2-Cell2"}}; model = new DefaultTableModel(rowData, columnNames); JTable table = new JTable(model); JScrollPane scrollPane = new JScrollPane(table); frame.getContentPane().add(scrollPane, BorderLayout.CENTER); JButton btnUpdate = new JButton("Update Data"); btnUpdate.addActionListener(e -> updateData()); frame.getContentPane().add(btnUpdate, BorderLayout.SOUTH); } private void updateData() { // Update an existing cell value at row 0 and column 0. model.setValueAt("Updated Value", 0, 0); // Add a new row of data into the table. model.addRow(new Object[]{"New Row Cell1", "New Row Cell2"}); // Remove all rows from the table. while (model.getRowCount() > 0) { model.removeRow(0); } } } ``` 这段代码定义了一个按钮点击事件处理器,在该处理程序内部调用了几个重要的方法来操作表内数据:`setValueAt()`用来更改特定单元格的内容;`addRow()`向表末尾追加新行;以及循环删除所有现有的行以清空整个表单。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值