JAVA图形界面(GUI)之表格

表格(JTable)是我们在GUI开发中很常用的一个组件。表格在可视化编程中用于显示信息,在Swing编程中非常有用,当要显示大量数据时,用表格可以清晰的显示出来。
本篇博客将演示JTable的基本用法。

构造方法:

方法名 说明
JTable() 构造一个默认的 JTable,使用默认的数据模型、默认的列模型和默认的选择模型对其进行初始化
JTable(int numRows, int numColumns) 使用 DefaultTableModel 构造具有 numRows 行和 numColumns 列个空单元格的 JTable
JTable(Object[][] rowData, Object[] columnNames) 构造一个 JTable 来显示二维数组 rowData 中的值,其列名称为 columnNames
JTable(TableModel dm) 构造一个 JTable,使用数据模型 dm、默认的列模型和默认的选择模型对其进行初始化
JTable(TableModel dm, TableColumnModel cm) 构造一个 JTable,使用数据模型 dm、列模型 cm 和默认的选择模型对其进行初始化
JTable(TableModel dm, TableColumnModel cm, ListSelectionModel sm) 构造一个 JTable,使用数据模型 dm、列模型 cm 和选择模型 sm 对其进行初始化
JTable(Vector rowData, Vector columnNames) 构造一个 JTable 来显示 Vector 所组成的 Vector rowData 中的值,其列名称为 columnNames

使用示例:

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.MessageFormat;
import java.util.Random;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

/**
 * 表格示例
 *
 * @author jianggujin
 *
 */
public class TableDemo extends JFrame
{
   // 默认表格模型
   private DefaultTableModel model = null;
   private JTable table = null;

   private JButton addBtn = null;

   public TableDemo()
   {
      super("TableDemo");
      String[][] datas = {};
      String[] titles = { "列一", "列二" };
      model = new DefaultTableModel(datas, titles);
      table = new JTable(model);

      addBtn = new JButton("添加数据");
      addBtn.addActionListener(new ActionListener() {

         @Override
         public void actionPerformed(ActionEvent e)
         {
            model.addRow(new String[] { getRandomData(), getRandomData() });
         }
      });

      add(addBtn, BorderLayout.NORTH);
      add(new JScrollPane(table));

      setSize(400, 300);
      setLocationRelativeTo(null);
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      setVisible(true);

   }

   public static void main(String[] args)
   {
      new TableDemo();
   }

   /**
    * 获得随机字符串,该方法仅用于获得随机字符串,可以忽略
    *
    * @return
    */
   private String getRandomData()
   {
      String source = "0123456789abcdefghijklmnopqrstuvwxyz";
      int len = source.length();
      Random random = new Random(System.currentTimeMillis());
      return MessageFormat.format("{0}{0}{0}", source.charAt(random.nextInt(len)));
   }
}

运行效果:

时间: 2024-12-06 09:39:12

JAVA图形界面(GUI)之表格的相关文章

JAVA图形界面(GUI)之容器

在Swing中,容器可以用来组织界面布局,容器中可以添加容器和组件.常用的有如下几种: 顶层容器:JFrame,JApplet,JDialog,JWindow 中间容器:JPanel,JScrollPane,JSplitPane,JToolBar 特殊容器:在GUI上起特殊作用的中间层,如JInternalFrame,JLayeredPane,JRootPane. 这篇博客将抽取其中几个常用容器为大家介绍,剩余的在之后用到了再介绍. JFrame JFrame是是个顶层容器,是屏幕上window

怎样让Java图形界面程序启动时没有控制台窗口?

程序|控制|图形 缺水的海豚 写了一篇文章介绍 如何在C/C++中调用Java的方法 . 写得相当好,谢谢! 文章中提到, Java跨平台的特性使Java越来越受开发人员的欢迎,但也往往会听到不少的抱怨:用Java开发的图形用户窗口界面每次在启动的时候都会跳出一个控制台窗口,这个控制台窗口让本来非常棒的界面失色不少.怎么能够让通过Java开发的GUI程序不弹出Java的控制台窗口呢? 有一个秘密(JDK文档中没提到),可以简单地解决这个问题.如果想运行Java图形界面程序,也用不着费劲写一个这样

请问java图形界面编程中怎样改变消息提示框中确定按钮的文本内容啊?

问题描述 请问java图形界面编程中怎样改变消息提示框中确定按钮的文本内容啊? 问题补充:恩恩,swing的!请问怎么改啊?xiaolv 写道 解决方案 JOptionPane.setDefaultLocale(Locale.CHINA);JOptionPane.showMessageDialog(null, "11", "22",JOptionPane.INFORMATION_MESSAGE);这个按钮自动集成多语言.只能通来Locale来改.想要OK就用Loca

代码-Java图形界面 简易BMI计算器怎样设计算法

问题描述 Java图形界面 简易BMI计算器怎样设计算法 老师出差去了 布置作业做一个简易BMI计算器 写了半天才写出一个图形界面 不知道怎样实现键盘录入身高.体重,点击评估按钮得到BMI和结果(结果输出的是胖,瘦,正常三种情况) 代码.界面如下: 解决方案 你的核心问题是如何对按钮进行响应,需要看下ActionListener的相关方法. public class BMI extends JFrame{ private JLabel lblHeight; private JLabel lblW

Java图形界面开发之简易记事本_java

在学习了Java事件之后,自己写了一个极其简单的记事本.用到了MenuBar,Menu,MenuITem等控件,事件包括ActionListener以及KeyListener. 代码如下: package com.package3; /* * 功能:简易记事本的开发,可以保存文件,打开文件,退出记事本 * author:ywq */ import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*

swing-小弟想问一下,当前用来开发JAVA图形界面的主流是什么??

问题描述 小弟想问一下,当前用来开发JAVA图形界面的主流是什么?? AWT,SWT,SWING这三种哪个用户比较多?求各位前辈解答, 解决方案 swing用的比较多 解决方案二: swing 用的人多,但是比较麻烦 解决方案三: swing 用的人多,但是比较麻烦 解决方案四: swing 用的人多,但是比较麻烦 解决方案五: java web的整个流程是可以的. 解决方案六: java web的整个流程是可以的. 解决方案七: 现在都是搞java web开发了 没人用swing了 解决方案八

awt-关于java图形界面的问题

问题描述 关于java图形界面的问题 问题大概是这样的: 1.awt 2.在一个窗口中建了一个按钮,给这个按钮设置了监听器,点击它后会弹出窗口,但是我写了关闭方法,新弹出来的窗口仍然无法关闭,关闭父窗口就都关闭了. 3.还有一个就是重复点击这个按钮,会一直往外弹,这个怎么解决? 解决方案 可否贴上代码,供解答者调试呢? 这样说感觉也不太清楚呢. 解决方案二: 1.新弹出的窗口是JFrame的么,关闭时是否有其他代码在使用? 2.重复点击按钮会一直弹出,如果你只想弹出一个的话,你最好设置一个变量来

求java图形界面开发

问题描述 哪位大神告诉我怎样开发java图形界面的程序谢谢!!! 解决方案 解决方案二:你可以看一些相关内容,很多的解决方案三:看java的经典图形库awt和swing解决方案四:告诉你个Swing开发的好网站.http://www.java2s.com/CN/Code/Java/2D-Graphics-GUI/Transform.htm再告诉你个用swing做的3D程序,有源码的哦.....笑去吧.....http://www.sweethome3d.com做java开发,多逛开源网站,不管是

jav图形界面问题-关于java图形界面如何实现下拉框含有复选框

问题描述 关于java图形界面如何实现下拉框含有复选框 想要使用swing实现下拉框中含有复选框的功能;希望能支持多选;在网上没找到,这样的图形界面是不是真的做不出来啊???求解!!

java 图形界面一个窗口切换到另一窗口的时候,窗口的背景图不见了,何解呢?

问题描述 java图形界面一个窗口切换到另一窗口的时候,窗口的背景图不见了,何解呢?每个窗口单独运行的时候是没有问题的,一通过其他窗口开启显示就有问题.我插入背景的方法是:ImageIconimg1=newImageIcon(MusicShareClient.class.getResource("Image/Login.jpg"));JLabelbg=newJLabel(img1);inst.setLayout(null);inst.getLayeredPane().add(bg,-3