java 中jtable_Java中元件JTable实例及基础教程

该篇博客展示了如何使用Java Swing库创建一个带有颜色标记的表格,用于展示两个字符串s和t的字符比较结果。通过DefaultTableModel和JTable,代码实现了单元格背景颜色根据比较结果动态改变,便于快速识别相似和不同之处。
摘要由CSDN通过智能技术生成

代码如下:

//导入相应的包

import java.awt.BorderLayout;

import java.awt.Color;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.ScrollPaneConstants;

import javax.swing.border.EmptyBorder;

import javax.swing.table.DefaultTableCellRenderer;

import javax.swing.table.DefaultTableModel;

import javax.swing.table.TableColumn;

public class Show_result extends JFrame{

//创建容器

JPanel jp=new JPanel(new BorderLayout());

//创建滚动条

JScrollPane jsp=new JScrollPane();

//创建表格

JTable jt=new JTable();

//创建列表样式

DefaultTableModel dtm=new DefaultTableModel();

//有参构造方法

public Show_result(String s,String t){

super();

this.setTitle("Show_reslut");

this.setVisible(true);

this.setLocationRelativeTo(this);

this.setSize(800,300);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setLayout(new BorderLayout());

jp.setBorder(new EmptyBorder(5,5,5,5));

jsp.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);

jsp.setViewportView(jt);

jp.add(jsp,BorderLayout.CENTER);

//设置列索引

int max_col=s.length()>t.length()?s.length():t.length();

String[] s_col=new String[max_col];

for(int i=1;i<=max_col;i++){

s_col[i-1]=i+"";

}

dtm.setColumnIdentifiers(s_col);

dtm.setColumnCount(max_col);

//设置行索引

dtm.setNumRows(2);

//填充元素

for(int i=0;i

dtm.setValueAt(s.charAt(i), 0, i);

}

for(int i=0;i

dtm.setValueAt(t.charAt(i), 1, i);

}

jt.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

jt.setModel(dtm);

//设置单元格宽度

for(int i=0;i

TableColumn tc=jt.getColumnModel().getColumn(i);

tc.setPreferredWidth(30);

tc.setMaxWidth(30);

tc.setMinWidth(30);

}

//设置单元格背景色

for(int i=1;i<=s_col.length;i++){

if(dtm.getValueAt(0, i-1)=="-"&&dtm.getValueAt(1, i-1)=="-"){

DefaultTableCellRenderer dtcr=new DefaultTableCellRenderer();

TableColumn tc=jt.getColumn(i+"");

dtcr.setBackground(Color.red);

tc.setCellRenderer(dtcr);

}

if(dtm.getValueAt(0, i-1)!="-"||dtm.getValueAt(1, i-1)!="-"){

if(dtm.getValueAt(0, i-1)==dtm.getValueAt(1, i-1)){

DefaultTableCellRenderer dtcr=new DefaultTableCellRenderer();

TableColumn tc=jt.getColumn(i+"");

dtcr.setBackground(Color.green);

tc.setCellRenderer(dtcr);

}else{

DefaultTableCellRenderer dtcr=new DefaultTableCellRenderer();

TableColumn tc=jt.getColumn(i+"");

dtcr.setBackground(Color.yellow);

tc.setCellRenderer(dtcr);

}

}

}

this.setContentPane(jp);

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值