java jtable 单元格合并_java 表格JTable中怎么样合并单元格

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

import&nbspjava.util.*;

import&nbspjava.awt.*;

import&nbspjava.awt.event.*;

import&nbspjavax.swing.*;

import&nbspjavax.swing.table.TableColumn;

import&nbspjavax.swing.table.TableColumnModel;

import&nbspjavax.swing.table.DefaultTableModel;

import&nbspjavax.swing.table.DefaultTableColumnModel;

class&nbspDefTabMod&nbspextends&nbspDefaultTableModel{

DefTabMod&nbsp(&nbspVector>&nbspdatavec,&nbspVector&nbspColumnNameVec){

super(datavec,&nbspColumnNameVec);

}

public&nbspvoid&nbspremoveColumn(int&nbspindex){

for(int&nbspi=0;i

((Vector)dataVector.get(i)).removeElementAt(index);

}

String&nbspcolumnName&nbsp=&nbspthis.getColumnName(index);

this.columnIdentifiers.remove(columnName);

fireTableStructureChanged();

}

}

class&nbspJTableDemo&nbspextends&nbspJFrame&nbspimplements&nbspActionListener&nbsp{

String&nbspbtns[]&nbsp=&nbsp"删除行&nbsp删除列&nbsp添加行&nbsp添加列&nbsp合并&nbsp编辑".split("&nbsp");&nbsp

String&nbspcols_name[]&nbsp=&nbsp"BLUE&nbspYELLO&nbspGLASS&nbspORANGE&nbspBLACK&nbspAPPLE&nbspPINK&nbspWHITE".split("&nbsp");

Vector&nbspcols_vec&nbsp=&nbspnew&nbspVector();&nbsp//列名称向量

Vector>&nbsprow_data&nbsp=&nbspnew&nbspVector();&nbsp//主数据向量

Vector&nbspnew_vecColumns&nbsp=&nbspnew&nbspVector();&nbsp//一个新列

JButton&nbspbtn[]&nbsp=&nbspnew&nbspJButton[btns.length];

JTextField&nbsptext1&nbsp=&nbspnew&nbspJTextField(35);

JTable&nbsptable;&nbsp&nbspint&nbsprowCnt&nbsp=32;

DefTabMod&nbspdeftabmod;

JTableDemo(){&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp//========================================//

for(int&nbspi=0;i

if(i

cols_vec.addElement(cols_name[i]);

new_vecColumns.addElement(cols_name[i]);

}

Vector&nbsprowVec&nbsp=&nbspnew&nbspVector();

for(int&nbspj=0;j

String&nbspvals&nbsp=&nbsp((char)((i+65)))&nbsp+&nbspcols_name[j].toLowerCase();

rowVec.addElement(&nbspvals&nbsp);

}

row_data.addElement(rowVec);

}

JPanel&nbspnorthpan&nbsp=&nbspnew&nbspJPanel(new&nbspGridLayout(1,6)&nbsp);

for(int&nbspi=0;i

btn[i]&nbsp=&nbspnew&nbspJButton(btns[i]);btn[i].addActionListener(this);northpan.add(btn[i]);

}&nbspadd(northpan,"North");&nbsp//========================================//

deftabmod&nbsp=&nbspnew&nbspDefTabMod(row_data,cols_vec);&nbsp//装入模型

table&nbsp=&nbspnew&nbspJTable(deftabmod);&nbsp//装入JTable

add(text1,"South");

add(new&nbspJScrollPane(table,22,32),"Center");

}

public&nbspvoid&nbspactionPerformed(ActionEvent&nbspe){

String&nbspc&nbsp=&nbspe.getActionCommand();

if(c.equals("删除行")){

int&nbsprowcount&nbsp=&nbspdeftabmod.getRowCount();

if(rowcount>=0){

deftabmod.removeRow(&nbsptable.getSelectedRow()&nbsp);

}

}

if(c.equals("删除列")){

deftabmod.removeColumn(&nbsptable.getSelectedColumn()&nbsp);

}

if(c.equals("添加列")){

deftabmod.addColumn(&nbsp"Column列",&nbspnew_vecColumns&nbsp);

}

if(c.equals("添加行")){

deftabmod.insertRow(table.getSelectedRow(),new_vecColumns&nbsp);

}

}

public&nbspstatic&nbspvoid&nbspmain(String[]&nbspag){

JTableDemo&nbspblue2&nbsp=&nbspnew&nbspJTableDemo();

blue2.setDefaultCloseOperation(3);

blue2.setBounds(100,50,520,400);

blue2.setVisible(true);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要更改Swing JTable单元格颜色,您可以使用JTable上的TableCellRenderer接口。这个接口允许您自定义单元格的呈现方式,包括单元格的背景和前景颜色。 下面是一个简单的例子,演示如何更改JTable单元格的颜色: ``` import java.awt.Color; import java.awt.Component; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableModel; public class JTableColorExample extends JFrame { public JTableColorExample() { // 创建表格模型和表格 DefaultTableModel model = new DefaultTableModel(new Object[][]{ {"A", 1}, {"B", 2}, {"C", 3}, {"D", 4} }, new Object[]{"Name", "Value"}); JTable table = new JTable(model); // 创建单元格渲染器 DefaultTableCellRenderer renderer = new DefaultTableCellRenderer() { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { // 调用父类的方法获取默认的单元格渲染组件 Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); // 如果值为奇数,设置背景为红色,否则为绿色 if ((Integer) value % 2 == 1) { c.setBackground(Color.RED); } else { c.setBackground(Color.GREEN); } return c; } }; // 设置单元格渲染器 table.setDefaultRenderer(Object.class, renderer); // 将表格添加到窗口 add(new JScrollPane(table)); // 设置窗口属性并显示 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(400, 300); setLocationRelativeTo(null); setVisible(true); } public static void main(String[] args) { new JTableColorExample(); } } ``` 在这个例子,我们创建了一个JTable,其包含两列数据:名称和值。然后,我们创建了一个DefaultTableCellRenderer的子类,重写了getTableCellRendererComponent方法来更改单元格的背景颜色,使奇数单元格为红色,偶数单元格为绿色。最后,我们将此单元格渲染器设置为表格的默认单元格渲染器。 运行这个例子,您应该看到一个带有不同颜色单元格JTable
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值