Java中元件JTable实例及基础教程

2025-09-12 03:02:03

1、JTable 的构造方法很多,可以传入很多参数,一般传入列数,行数,或者model等,来构造一个合适的JTable。也可以传入行索引和列索引。

具体方法如下图

Java中元件JTable实例及基础教程

2、JTable的方法也很多,主要设计设定大小、数值、前景色、背景色、可修改或者不可修改。

Java中元件JTable实例及基础教程

Java中元件JTable实例及基础教程

Java中元件JTable实例及基础教程

3、设置单元格的数值方法,一般较为常用。使用行索引和列索引对单元格进行修改。setValueAt(value,row,column)

4、代码如下:

//导入相应的包

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<s.length();i++){

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

        }

        for(int i=0;i<t.length();i++){

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

        }

           

        jt.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

        jt.setModel(dtm);

        //设置单元格宽度

        for(int i=0;i<s.length();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);  

    }

}

Java中元件JTable实例及基础教程

5、运行结果如下:

Java中元件JTable实例及基础教程

6、JTable还继承了以下字段:

Java中元件JTable实例及基础教程

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