21xrx.com
2025-03-26 09:11:31 Wednesday
文章检索 我的文章 写文章
JavaSwing实现表格绘制
2023-06-12 02:04:39 深夜i     11     0
JavaSwing 表格 GUI

JavaSwing是Java中的GUI工具包,可以用来创建各种图形用户界面。其中,表格是一种常见的界面元素,本文将介绍如何使用JavaSwing绘制表格。

首先,我们需要创建一个JFrame窗口,并在其中添加JTable控件。代码如下:

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class MyTableFrame extends JFrame {
  public MyTableFrame() {
    String[] columnNames = "Gender";
    Object[][] rowData = {
      "Tom",
       18,
       25,
       "Female"
    };
    JTable table = new JTable(rowData, columnNames);
    JScrollPane scrollPane = new JScrollPane(table);
    getContentPane().add(scrollPane);
    setSize(400, 300);
    setVisible(true);
  }
  public static void main(String[] args) {
    new MyTableFrame();
  }
}

在上面的代码中,我们使用了JScrollPane来添加滚动条,以便在表格内容过多时能够滚动查看。接下来,在main函数中创建MyTableFrame对象即可显示表格。

运行该程序,我们可以看到一张包含4行3列数据的表格:

![image-20210915124822545](https://i.loli.net/2021/09/15/BJ9wLdapluC1IyU.png)

接下来,我们可以对表格进行进一步调整,比如设置列宽和行高、添加表头和表格样式等。代码如下:

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
public class MyTableFrame extends JFrame {
  public MyTableFrame() {
    String[] columnNames = "Age";
    Object[][] rowData = {
      "Tom",
       18,
       "Male",
       30
    };
    DefaultTableModel model = new DefaultTableModel(rowData, columnNames);
    JTable table = new JTable(model);
    table.getTableHeader().setFont(new Font("微软雅黑", Font.BOLD, 14));
    table.getTableHeader().setBackground(Color.YELLOW);
    table.getTableHeader().setBorder(null);
    table.getColumnModel().getColumn(0).setPreferredWidth(100);
    table.getColumnModel().getColumn(1).setPreferredWidth(50);
    table.getColumnModel().getColumn(2).setPreferredWidth(50);
    table.setRowHeight(30);
    DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
    renderer.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);
    table.setDefaultRenderer(Object.class, renderer);
    JScrollPane scrollPane = new JScrollPane(table);
    getContentPane().add(scrollPane);
    setSize(400, 300);
    setVisible(true);
  }
  public static void main(String[] args) {
    new MyTableFrame();
  }
}

在这个版本的代码中,我们设置了表头的字体为微软雅黑14号加粗,并将其背景色设置为黄色。同时,我们还调整了表格的列宽、行高和单元格居中对齐。最终的表格效果如下:

![image-20210915125304205](https://i.loli.net/2021/09/15/ytzSGo7rO6JLRXl.png)

  
  

评论区