Swing表格JTable 的基本使用

import javax.swing.*;

public class table {
    JFrame jFrame=new JFrame();


    Object[] title={"姓名","年龄","居住地"};

    Object[][] str={
            {"小王","30","西安"},{"小明","20","安徽"},{"小李","25","陕西"},{"小红","15","上海"}
    };



private void init(){
JTable jTable = new JTable(str,title);//先放二维数组,再放一位数组
jFrame.add(new JScrollPane(jTable));
jFrame.pack();
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setVisible(true);



}
    public static void main(String[] args) {
        new table().init();
    }
}


 设置最小列距和最大列距

TableColumn column = jTable.getColumn(列);
column.setMinWidth(数值);column.setMaxWidth(数值);
import javax.swing.*;
import javax.swing.table.TableColumn;

public class table1 {

    JFrame jFrame=new JFrame();


    Object[] title={"姓名","年龄","居住地"};

    Object[][] str={
            {"小王","30","西安"},{"小明","20","安徽"},{"小李","25","陕西"},{"小红","15","上海"}
    };



    private void init(){
        JTable jTable = new JTable(str,title);//先放二维数组,再放一位数组
        jFrame.add(new JScrollPane(jTable));


        jTable.getSelectionModel().setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);//默认选择模式
        TableColumn column = jTable.getColumn(title[0]);//姓名这一列
        column.setMinWidth(30);

        TableColumn column1 = jTable.getColumn(title[2]);
        column1.setMaxWidth(50);


        jFrame.pack();
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jFrame.setVisible(true);



    }
    public static void main(String[] args) {
        new table1().init();
    }
}


import javax.swing.*;
import javax.swing.table.AbstractTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

public class table3 {
    JFrame jFrame = new JFrame();


    Object[] title = {"姓名", "年龄", "居住地"};

    Object[][] str = {
            {"小王", "30", "西安"}, {"小明", "20", "安徽"}, {"小李", "25", "陕西"}, {"小红", "15", "上海"}
    };
    Vector vector = new Vector();
    Vector<Vector> vectors = new Vector<>();
    JButton jButton = new JButton("点击查看当前选中行数和列数和对应单元格的姓名");

    private void init() {


        for (int i = 0; i < title.length; i++) {
            vector.add(title[i]);

        }
        for (int i = 0; i < str.length; i++) {
            Vector t = new Vector<>();
            for (int j = 0; j < str[i].length; j++) {
                t.add(str[i][j]);
            }
            vectors.add(t);
        }

        mymodel mymodel = new mymodel();

//        JTable jTable=new JTable(vectors,vector);
        JTable jTable = new JTable(mymodel);
        jFrame.add(new JScrollPane(jTable));
        jButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                int selectedColumn = jTable.getSelectedColumn();
                int selectedRow = jTable.getSelectedRow();
                System.out.println("当前选中的行数是:"+selectedRow);
                System.out.println("当前选中的列数是:"+selectedColumn);
                Object valueAt = mymodel.getValueAt(selectedRow, selectedColumn);
                System.out.println("当前选中的单元格的名字是:"+valueAt);
            }
        });

        jFrame.add(jButton, BorderLayout.SOUTH);
        jFrame.pack();
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jFrame.setVisible(true);

    }

    public class mymodel extends AbstractTableModel {

        @Override
        public int getRowCount() {
            return vectors.size();
        }

        @Override
        public int getColumnCount() {
            return vector.size();
        }

        @Override
        public Object getValueAt(int rowIndex, int columnIndex) {
            return vectors.get(rowIndex).get(columnIndex);
        }

        @Override
        public String getColumnName(int column) {
            return (String) vector.get(column);
        }

        //使得表格可以编辑
        @Override
        public boolean isCellEditable(int rowIndex, int columnIndex) {
            return true;
        }


    }

    public static void main(String[] args) {
        new table3().init();
    }

}

 

 

 

import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

public class table4 {
    JFrame jFrame = new JFrame();


    Object[] title = {"姓名", "年龄", "居住地"};

    Object[][] str = {
            {"小王", "30", "西安"}, {"小明", "20", "安徽"}, {"小李", "25", "陕西"}, {"小红", "15", "上海"}
    };
    Vector vector = new Vector();
    Vector<Vector> vectors = new Vector<>();


    //创建按钮
    JButton jButton0=new JButton("添加一行");
    JButton jButton1=new JButton("添加一列");
    JButton jButton2=new JButton("删除一行");

    JPanel jPanel = new JPanel();
    private void init() {


        for (int i = 0; i < title.length; i++) {
            vector.add(title[i]);

        }
        for (int i = 0; i < str.length; i++) {
            Vector t = new Vector<>();
            for (int j = 0; j < str[i].length; j++) {
                t.add(str[i][j]);
            }
            vectors.add(t);
        }
        DefaultTableModel defaultTableModel=new DefaultTableModel(vectors,vector);
        JTable jTable = new JTable(defaultTableModel);
        jButton0.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //给表格添加一行
                defaultTableModel.addRow(new Object[]{"柳岩",18,"北京"});
            }
        });
jButton1.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        //给表格添加一列
        defaultTableModel.addColumn("职业");
    }
});
jButton2.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        int selectedRow = jTable.getSelectedRow();
        defaultTableModel.removeRow(selectedRow);
    }
});

        jPanel.add(jButton0);
        jPanel.add(jButton1);
        jPanel.add(jButton2);
        jFrame.add(jPanel, BorderLayout.SOUTH);
        jFrame.add(new JScrollPane(jTable));
        jFrame.pack();
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jFrame.setVisible(true);

    }
    public static void main(String[] args) {
        new table4().init();
    }

}


 


版权声明:本文为qq_57907966原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。