java default l类_java DefaultTableModel的继承类?

该博客展示了如何使用Java Swing创建一个包含动态数据的JTable,并实现表格排序和单元格颜色根据特定条件变化的功能。示例代码创建了一个8列的数据模型,数据可编辑且支持随机填充。当单元格值为1时,背景色会变为红色。此外,还添加了一个按钮用于清空选中单元格的数据。
摘要由CSDN通过智能技术生成

展开全部

例子,复制粘贴即可

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Component;

import java.awt.Dimension;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.event.TableModelListener;

import javax.swing.table.DefaultTableCellRenderer;

import javax.swing.table.TableCellRenderer;

import javax.swing.table.TableModel;

import javax.swing.table.TableRowSorter;

public class TableFrame extends JFrame

{

private static final long serialVersionUID = 1L;

private static final int COLNUM = 8;

private static final String[] NAMES = new String[COLNUM];

private static final String[][] DATA = new String[2 * COLNUM][COLNUM];

private static JTable tableView = null;

public TableFrame ( String title )

{

e5a48de588b63231313335323631343130323136353331333335316537randomTester ();

this.setTitle (title);

}

private void randomTester ()

{

for ( int i = 0; i 

{

NAMES[i] = "COL" + ( i + 1 );

}

for ( int i = 0; i 

{

for ( int j = 0; j 

{

DATA[i][j] = (int) ( Math.random () * 5 + 1 ) + "";

}

}

}

private static void createTable ( final TableFrame tc )

{

TableModel dataModel = new TableModel ()

{

public int getColumnCount ()

{

return NAMES.length;

}

public int getRowCount ()

{

return DATA.length;

}

public Object getValueAt ( int row, int col )

{

return DATA[row][col];

}

public String getColumnName ( int column )

{

return NAMES[column];

}

@Override

public Class> getColumnClass ( int columnIndex )

{

return Object.class;

}

@Override

public boolean isCellEditable ( int rowIndex, int columnIndex )

{

return true;

}

@Override

public void setValueAt ( Object aValue, int rowIndex, int columnIndex )

{}

@Override

public void addTableModelListener ( TableModelListener l )

{}

@Override

public void removeTableModelListener ( TableModelListener l )

{}

};

tableView = new JTable (dataModel);

tableView.setDefaultRenderer (Object.class, new TableCellRenderer ()

{

@Override

public Component getTableCellRendererComponent ( JTable table, Object value, boolean isSelected,

boolean hasFocus, int row, int column )

{

Component render =

new DefaultTableCellRenderer ().getTableCellRendererComponent (table, value, isSelected,

hasFocus, row, column);

if ("1".equals (table.getValueAt (row, NAMES.length - 1)))

{

render.setBackground (Color.RED);

}

return render;

}

});

tableView.setRowSorter (new TableRowSorter (dataModel));

JScrollPane scrollpane = new JScrollPane (tableView);

scrollpane.setPreferredSize (new Dimension (500, 200));

tc.setLayout (new BorderLayout ());

tc.add (scrollpane, BorderLayout.CENTER);

JButton testbtn = new JButton ("test");

testbtn.addActionListener (new ActionListener ()

{

@Override

public void actionPerformed ( ActionEvent e )

{

int row = tableView.getSelectedRow ();

int col = tableView.getSelectedColumn ();

DATA[row][col] = "";

tableView.updateUI ();

}

});

JPanel panel = new JPanel ();

panel.setSize (500, 100);

panel.setLayout (new FlowLayout (FlowLayout.CENTER));

panel.add (testbtn);

tc.add (panel, BorderLayout.SOUTH);

}

private static void initFrame ( TableFrame tc )

{

tc.setSize (512, 300);

tc.setResizable (false);

tc.setLocationRelativeTo (null);

tc.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

tc.setVisible (true);

}

public static void main ( String[] args )

{

TableFrame tc = new TableFrame ("TableFrame");

createTable (tc);

initFrame (tc);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值