java setValueAt设置了值后如何动态更新

2025-10-10 19:25:33

1、创建JFrame视窗并添加一个JTable表格对象用来展现数据

JFrame f = new JFrame();

Object[][] dataSet = {

{ "丁丁", new Integer(66), new Integer(32), new Integer(98), new Boolean(false), new Boolean(false) },

{ "阿道克", new Integer(82), new Integer(69), new Integer(128), new Boolean(true), new Boolean(false) }, };

String[] n = { "姓名", "语文", "数学", "总分", "及格", "作弊" };

JTable table = new JTable(dataSet, n);

table.setPreferredScrollableViewportSize(new Dimension(550, 30));

table.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);

//设置JTable某个单元格的值

table.setValueAt(new Integer(99), 0, 1);

JScrollPane scrollPane = new JScrollPane(table);

f.getContentPane().add(scrollPane, BorderLayout.CENTER);

f.setTitle("Tiger Table");

f.addWindowListener(

new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

2、添加一个按钮用来动态修改表格单元格的数值

JButton updateBtn = new JButton();

updateBtn.setText("通过按钮随机修改");

Random rand = new Random();

updateBtn.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

//通过按钮动态设置JTable某个单元格的值

table.setValueAt(new Integer(rand.nextInt()), 1, 1);

updateBtn.setText(""+table.getValueAt(1, 1));

}

});

f.getContentPane().add(updateBtn,BorderLayout.NORTH);

3、添加一个按钮用来实时获取表格单元格的动态值

JButton dynamicBtn = new JButton();

dynamicBtn.setText("获取表格动态修改值");

f.getContentPane().add(dynamicBtn,BorderLayout.SOUTH);

dynamicBtn.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

dynamicBtn.setText("表格动态修改值(1,1)="+table.getValueAt(1, 2));

//动态更新table值

table.setValueAt(new Integer(rand.nextInt()), 1, 1);

}

});

4、完整的代码:

package tiger;

import javax.swing.*;

import javax.swing.table.*;

import java.awt.*;

import java.awt.event.*;

import java.util.*;

public class TigerTable {

public TigerTable() {

JFrame f = new JFrame();

Object[][] dataSet = {

{ "丁丁", new Integer(66), new Integer(32), new Integer(98), new Boolean(false), new Boolean(false) },

{ "阿道克", new Integer(82), new Integer(69), new Integer(128), new Boolean(true), new Boolean(false) }, };

String[] n = { "姓名", "语文", "数学", "总分", "及格", "作弊" };

JTable table = new JTable(dataSet, n);

table.setPreferredScrollableViewportSize(new Dimension(550, 30));

table.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);

//设置JTable某个单元格的值

table.setValueAt(new Integer(99), 0, 1);

JScrollPane scrollPane = new JScrollPane(table);

f.getContentPane().add(scrollPane, BorderLayout.CENTER);

f.setTitle("Tiger Table");

f.addWindowListener(

new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

JButton updateBtn = new JButton();

updateBtn.setText("通过按钮随机修改");

Random rand = new Random();

updateBtn.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

//通过按钮动态设置JTable某个单元格的值

table.setValueAt(new Integer(rand.nextInt()), 1, 1);

updateBtn.setText(""+table.getValueAt(1, 1));

}

});

f.getContentPane().add(updateBtn,BorderLayout.NORTH);

JButton dynamicBtn = new JButton();

dynamicBtn.setText("获取表格动态修改值");

f.getContentPane().add(dynamicBtn,BorderLayout.SOUTH);

dynamicBtn.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

dynamicBtn.setText("表格动态修改值(1,1)="+table.getValueAt(1, 2));

//动态更新table值

table.setValueAt(new Integer(rand.nextInt()), 1, 1);

}

});

f.pack();

f.show();

f.setVisible(true);

}

public static void main(String[] args) {

new TigerTable();

}

}

java setValueAt设置了值后如何动态更新

java setValueAt设置了值后如何动态更新

java setValueAt设置了值后如何动态更新

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢