跟我学Java Swing GUI组件技术及应用实例——JTable表格组件及应用实例
java中jtable的用法
java中jtable的用法一、JTable简介JTable是Java Swing包中的一个组件,用于在图形用户界面(GUI)中显示和编辑表格数据。
它可以显示任何类型的数据,包括文本、数字、日期和图像等。
二、创建JTable1. 创建一个空的JTable可以通过以下代码创建一个空的JTable:```JTable table = new JTable();```2. 从二维数组创建JTable可以通过以下代码从二维数组创建一个简单的JTable:String[][] data = {{"John", "Doe"}, {"Jane", "Doe"}};String[] columnNames = {"First Name", "Last Name"};JTable table = new JTable(data, columnNames);```3. 从TableModel创建JTable可以通过实现TableModel接口并使用它来创建一个定制的TableModel,然后将其传递给JTable构造函数来创建一个自定义的JTable。
4. 从数据库中获取数据并创建JTable可以通过使用Java数据库连接(JDBC)API与数据库进行交互,并将结果集转换为TableModel,然后将其传递给JTable构造函数来从数据库中获取数据并创建一个自定义的JTable。
三、设置表格属性1. 设置表头可以使用以下代码设置表头:```String[] columnNames = {"First Name", "Last Name"};table.setColumnIdentifiers(columnNames);```2. 设置表格行高和列宽可以使用以下代码设置表格行高和列宽:```table.setRowHeight(30);table.getColumnModel().getColumn(0).setPreferredWidth(100); ```3. 设置表格背景色和前景色可以使用以下代码设置表格背景色和前景色:```table.setBackground(Color.white);table.setForeground(Color.black);```4. 设置表格字体可以使用以下代码设置表格字体:```Font font = new Font("Arial", Font.PLAIN, 14);table.setFont(font);```5. 设置表格边框可以使用以下代码设置表格边框:```Border border = BorderFactory.createLineBorder(Color.black); table.setBorder(border);```四、渲染器和编辑器1. 渲染器渲染器用于将单元格中的值呈现为用户界面上的文本或图像。
跟我学Java Swing GUI组件技术及应用实例——JTable表格组件及应用实例
1.1跟我学Java Swing GUI组件技术及应用实例——JTable表格组件及应用实例1.1.1表格控件JTable1、JTable表格控件的主要功能JTable顾名思义就是一个将数据以表格显示的组件,它提供以行和列的方式来显示数据,并且可以拖动列。
如下示图为应用JTable表格控件所创建出的数据表格。
JTable的数据选项不仅仅是可以显示字符串,还可以显示Checkbox选择框、下拉列表框或者图片等内容。
如下为Sun 公司的Swing 教程中的TableDialogEditoDemo 应用程序的执行结果示图,在该示例的数据表格中显示Checkbox选择框、下拉列表框和图片等内容。
2、JTable类的API功能说明(1)JTable类的API功能说明如下示图为JDK API文档中对JTable类的API功能说明的相关信息。
如果需要对数据表格中的表头数据列和数据单元格中的数据列进行定制,则需要通过继承封装表头数据列JTableHeader类或者继承封装数据列的TableColumn类。
如下为JTableHeader类和TableColumn类的功能说明。
(2)表头数据列JTableHeader类的功能说明(3)数据列TableColumn类的功能说明TableColumn 类封装表示JTable中数据列的所有属性,如宽度、大小可调整性、最小和最大宽度。
3、JTable表格控件中的数据可以以多种不同的方式被选中(1)选中某一数据行(2)选中连续的多行数据行(3)选中不连续的多行数据行4、JTable类的构造函数定义可以通过JTable(Object[][] rowData, Object[] columnNames)形式的构造方法创建出数据表格组件,该JTable组件将用来显示一个二维数组rowData 中的值(它是一个行数组),其列名称为columnNames所代表的数组。
JTable类的其它形式的构造函数定义如下:5、JTable 组件中的表示表格数据的数据结构(1)TableModel接口的功能定义由于Java Swing采用了MVC的设计,所以JTable不是用来存放数据的,它只是用来作为视图显示,而真正用来存储和维护数据的是TableModel这个接口的实现类。
java-Swing控件的用法和范例
java-Swing控件的用法和范例类JTableJTable用来显示和编辑规则的二维单元表。
JTable有很多用来自定义其呈现和编辑的设施,同时提供了这些功能的默认设置,从而可轻松地设置简单表。
例如,要设置一个10行10列的表:TableModel dataModel=new AbstractTableModel(){public int getColumnCount(){return10;}public int getRowCount(){return10;}public Object getValueAt(int row,int col){return new Integer(row*col);} };JTable table=new JTable(dataModel);JScrollPane scrollpane=new JScrollPane(table);注意,如果要在单独的视图中(在JScrollPane外)使用JTable并显示表标题,则可以使用getTableHeader()获取并单独显示它。
设计使用JTable的应用程序时,要严格注意用来表示表数据的数据结构。
DefaultTableModel 是一个模型实现,它使用一个Vector来存储所有单元格的值。
该Vector由包含多个Object 的Vector组成。
除了将数据从应用程序复制到DefaultTableModel中之外,还可以TableModel接口的方法来包装数据,这样可将数据直接传递到JTable,如以上示例所示。
这通常可以提高应用程序的效率,因为模型可以自由选择最适合数据的内部表示形式。
在决定使用AbstractTableModel还是使用DefaultTableModel方面有一个好的实践经验,即在创建子类时使用AbstractTableModel作为基类,在不需要创建子类时则使用DefaultTableModel。
跟我学Java面向对象程序设计技术及应用——Java Swing GUI组件技术教学参考示例(第1部分)
1.1Java Swing GUI组件技术教学参考示例(第1部分)1.1.1模拟实现Windows资源管理器的示例1、产生一个类似Windows的资源管理器的窗口(1)SwingExplorerMainFrame,包名称为com.px1987.javaapplication.swing,并且从javax.swing.JFrame类继承(2)编程SwingExplorerMainFrame类的代码package com.px1987.javaapplication.swing;import java.awt.Cursor;import java.awt.Font;import java.awt.GraphicsConfiguration;import java.awt.HeadlessException;import java.awt.Image;import java.awt.Toolkit;import javax.swing.JFrame;public class SwingExplorerMainFrame extends JFrame {public SwingExplorerMainFrame() throws HeadlessException {super();initThisFrame();}public SwingExplorerMainFrame(GraphicsConfiguration gc) {super(gc);initThisFrame();}public SwingExplorerMainFrame(String title) throws HeadlessException { super(title);initThisFrame();}public SwingExplorerMainFrame(String title, GraphicsConfiguration gc) { super(title, gc);initThisFrame();}private void initThisFrame(){this.setTitle("利用Java Swing构造的Windows资源管理器");this.setFont(new Font("宋体", Font.PLAIN, 12));Image oneIconImage=Toolkit.getDefaultToolkit().getImage(getClass().getResource("/images/mainframe/mainframeIconImage.jpg"));this.setIconImage(oneIconImage);// this.setResizable(false);// this.setAlwaysOnTop(true);// this.setCursor(Cursor.HAND_CURSOR);// this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);this.setVisible(true);// this.setSize(400,300);this.setExtendedState(JFrame.MAXIMIZED_BOTH);this.setLocationRelativeTo(null); //居中显示}}(3)代码中的几个常量的含义1)DO_NOTHING_ON_CLOSE //什么也不做2)HIDE_ON_CLOSE //隐藏当前窗口3)DISPOSE_ON_CLOSE //隐藏当前窗口,并释放窗体所占有的其它资源4)EXIT_ON_CLOSE // 结束窗体所在的应用程序这4个常量都是JFrame类中的int类型,也可以应用下面的代码实现将鼠标消失(隐藏)的效果。
JAVA中JTABLE组件详解实例
}
public void mouseExited(MouseEvent e) { // 鼠标退出表格时的处理
}
public void mouseClicked(MouseEvent e) { // 鼠标点击时的处理
Connection con; Statement stmt; ResultSet rs; Object a[][]; JButton bt_save; int i=0; Object header[]={"学号","姓名","性别","年龄","邮箱"}; DataFrame() {
a=new Object[9][5]; try {
a[i][0]=rs.getInt(1);
a[i][1]=rs.getString(2); a[i][2]=rs.getString(3); a[i][3]=rs.getInt(4); a[i][4]=rs.getString(5); i++; } } catch(SQLException e) { System.out.println("SqlError:"+e); } table=new JTable(a,header); Container con=getContentPane();
// 添加数据到表格 tableModel.addRow(arr); }
// 更新表格 table.invalidate(); } 2) 取得表格中的数据 public List<Member> getShowMembers(){ List<Member> members=new ArrayList<Member>();
Swing-JTable用法-入门
Swing-JTable⽤法-⼊门注:本⽂为学习笔记,原⽂为,本⽂所有素材与代码均源于原⽂,可能会有部分更改。
JTable是Swing中的表格控件,它的外观如下所⽰:没错,excel或者access数据库的编辑区就是JTable这样的控件了。
创建JTableJTable提供了2个构造器可以让你⽤数据和头部直接⽣成它:JTable(Object[][] rowData, Object[] columnNames)JTable(Vector rowData, Vector columnNames)这两个构造器有⼀些特性你必须要注意:1.JTable所有的单元格都是可编辑的;2.它将所有数据都当做string来处理。
本来,JTable可以将布尔型数据⽤⼀个checkBox来进⾏展⽰,就像表1那样,在这⾥就不⾏了。
3.它要求你把所有数据都放到数组或vector中。
如果你的数据来⾃于数据库,那么专门再填充到数组实在是多此⼀举。
呐,如果你不能忍受以上限制,那么就使⽤table Model来管理你的数据吧!创建TableModel如果程序没有显式地指定tableModel,JTable会⾃动⽣成⼀个实例,这样做的副作⽤在上⾯已经说过了。
我们⾃⼰创建tableModel可以让数据得到更好的展⽰,这样做的⽅法是继承。
它已经提供了tableModel接⼝的⼤部分默认实现,在最低限度下,你只需要实现以下三个⽅法:public int getRowCount();public int getColumnCount();public Object getValueAt(int row, int column);当然,如果你的应⽤程序有其他定制化的功能,你可以⾃⼰实现的其它⽅法,⽐如:public Class getColumnClass(int c)//JTable uses this method to determine the default renderer editor for each cellpublic boolean isCellEditable(int row, int col)//Don't need to implement this method unless your table's editablepublic void setValueAt(Object value, int row, int col) //Don't need to implement this method unless your table's data can change.⽰意了如何⾃⼰创建并使⽤tableModel。
java jtable用法(一)
java jtable用法(一)Java JTable的用法JTable简介JTable是Java Swing库中的一个组件,用于显示和编辑表格数据。
它可以按照行和列的形式展示数据,并支持用户交互操作。
在本文中,我们将介绍一些JTable的常见用法和技巧。
创建JTable要创建一个JTable,我们首先需要创建一个TableModel。
TableModel是一个数据模型,用于存储和管理表格中的数据。
以下是创建JTable的步骤:1.创建一个二维数组或者一个实现TableModel接口的自定义类。
2.实例化DefaultTableModel类,并传入之前创建的数据数组或者自定义TableModel类的实例。
3.将DefaultTableModel实例传入JTable的构造方法中,创建JTable对象。
// 创建数据数组Object[][] data = {{"John", 25, "USA"},{"Alice", 30, "Canada"},{"Bob", 35, "UK"}};// 创建列名数组String[] columnNames = {"Name", "Age", "Country"};// 创建DefaultTableModelDefaultTableModel model = new DefaultTableModel(data, co lumnNames);// 创建JTableJTable table = new JTable(model);自定义JTable外观JTable提供了许多方法和属性,用于自定义表格的外观。
下面列举了几个常用的用法:设置表格行高使用方法可以设置表格的行高。
默认情况下,行高是根据表格内容的实际高度自动调整的。
跟我学Java GUI Swing组件技术及应用实例——Swing布局及事件编程实现实例
12、事件适配器(Event Adapter) (1)为什么要应用事件适配器 为简化事件编程实现以减少对不必要的事件响应方法 的重写, Swing 事件系统针对大多数事件监听器接口 定义了相应的实现类----事件适配器类,它实现了相 应监听器接口中所有的方法,但不做任何功能实现。 开发人员在定义自己的监听器类时就可以直接继承事 件适配器类,并只重写所需要的事件响应方法。
相对布局定 位的结果
绝对布局定 位的结果
4、FlowLayout布局策略及显示效果 它实现从上到下,从左到右依次摆放,每行均居中;它 是Panel的缺省布局。
5、BorderLayout布局策略 它将容器内的空间划分为东、南、西、北、中五个 方位,并指明组件所在的方位,它是Window、Dialog、 Frame的缺省布局方式。
10、事件编程的基本规则 (1)编程实现时的基本要求 事件处理的类代码要对某一类事件加以处理,则应实 现它们所对应的接口,并且给出该接口中定义的全部 事件响应方法的功能实现——重写其方法体; 然后在创建该组件时注册该事件的响应者(又称监听 器)。
public class MyFrame extends JFrame implements ActionListener{ public void actionPerFormed(ActionEvent event){ } }
(2)对事件响应者进行注册 事件源通过对特定的事件进行注册,以指定该事件的 监听器(响应者)对象——如果由当前容器组件处理事件, 则采用this。
okButton.addActionListsener(this);
(3)事件注册方法 方法名由“add+事件类型对应的监听器接口名称”组 成; 方法参数为监听器对象(实现事件响应的类的对象, 如容器组件自身响应该事件,则监听器对象应用this 代表)。 11、各种事件所对应的事件处理方法
跟我学Java GUI Swing组件技术及应用实例——Swing窗口及菜单工具条编程应用实例
2、Swing组件的分类
顶级容器 JFrame、JApplet、 JDialog 特殊功能的容器 JLayeredPanel、 JRootPane InternalFrame、
JPanel、JScrollPanel、JToolbar JSplitPanel、JTabbedPanel、 基本组 件 JButton、 JCombobox、 JList、 JMenu、 JSlider、 JTextField 等
5、窗口主菜单条及各个菜单编程
(1)与菜单编程实现有关的各个类 菜单条JMenuBar类——利用 setJMenuBar()方法加入窗口中 级联菜单JMenu类 菜单项JMenuItem类 选择性菜单项 JCheckBoxMenuItem类 选择性的菜单项但为圆点的 JRadioButtonMenuItem类 (2)主要的编程步骤
(3)示例代码
(4)代码说明 它是awt.Frame的子类,本身有“对等体”;对它实例化 后默认状态下并不显示出窗口,需调用 setVisible(true) ; 默认的尺寸为(0,0),需调用setSize(width,height); 窗口显示出后,将进入用户界面线程。可以对它销毁和 隐藏:setDispose和setHide,但此时的主进程并未结束。
●基本组件 ●菜单条菜单组件 ● 容器组件 ● 弹出式菜单组件
(4)Swing组件所在的包 大部分组件都在javax.swing包
中,每个组件都以字母“J” 开头,各 个组件都是JComponent的子类。
(5)Swing组件的Demo示例
对Swing组件的学习 应该重点掌握各个 组件的属性、方法 和事件编程 普通功能的容器
(3)在顶级容器中添加组件的方法二 先利用JPanel类生成一个内容面板对象,并将各个组件加入 到内容面板中,然后再调用setContentPane()方法将内容面 板对象加入到当前顶级容器中。 4、JFrame 编程和应用 (1)JFrame代表应用程序的主窗口。 (2)编程实现的基本步骤 创建一个JFrame类的子类以代表 程序的窗口; 在自己的子类的构造方法中调用 上层基类的构造方法;并设置窗 口的大小等参数最终达到初始化 窗口; 设置在用户关闭窗口时则应该完 成什么行为; 最后显示出该窗口。
Java Swing JTable案例
tableGoods.removeRow(i); } GoodsService goodsService=new GoodsService(); // // 遍历货物集合,集合中的每个对象都是 Goods 实例, // Goods 实例中的 toArrary()方法用以将 Goods 中的 // 每个值转换为对象数组 // DefaultTableModel 的 addRow 方法中,允许参数为 Object[], // 从而将一个 Goods 实例添加到表格中. // for(Goods g:goodsService.getAllGoods()){ tableGoods.addRow(g.toArray()); } System.out.println(tableGoods.getRowCount()); } }); // // 使用内部匿名类设置[删除所选数据]的按钮事件 // btnRemove.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ try { tableGoods.removeRow(table.getSelectedRow()); } catch (Exception ex) { } } }); contentPane.validate(); this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } } public class GoodsDemo { public static void main(String[] args) { TableDemo win=new TableDemo("演示表格"); win.setVislic void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } // // 生成对象数组,用于表格组件 // public Object[] toArray() { return new Object[]{this.id,,this.price}; } }
Swing之JTable详解
Swing之JTable详解类层次结构图:ng.Objectponent--java.awt.Container--javax.swing.JComponent--javax.swing.JTabel1、JTable在使用JTable以前,我们先看一下它的构造函数有哪些,以及应该如何使用:JTabel构造函数:JTable():建立一个新的JTables,并使用系统默认的Model。
JTable(int numRows,int numColumns):建立一个具有numRows行,numColumns列的空表格,使用的是DefaultTableModel。
JTable(Object[][] rowData,Object[][] columnNames):建立一个显示二维数组数据的表格,且可以显示列的名称。
JTable(TableModel dm):建立一个JTable,有默认的字段模式以及选择模式,并设置数据模式。
JTable(TableModel dm,TableColumnModel cm):建立一个JTable,设置数据模式与字段模式,并有默认的选择模式。
JTable(TableModel dm,TableColumnModel cm,ListSelectionModel sm):建立一个JTable,设置数据模式、字段模式、与选择模式。
JTable(Vector rowData,Vector columnNames):建立一个以Vector为输入来源的数据表格,可显示行的名称。
我们先以Array构造方式,说明如何利用JTable来建立一个简单的表格:import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.util.*;public class SimpleTable{public SimpleTable(){JFrame f=new JFrame();Object[][] playerInfo={{"阿呆",new Integer(66),new Integer(32),new Integer(98),new Boolean(false)},{"阿呆",new Integer(82),new Integer(69),new Integer(128),new Boolean(true)},};String[] Names={"姓名","语文","数学","总分","及格"};JTable table=new JTable(playerInfo,Names);table.setPreferredScrollableViewportSize(new Dimension(550,30));JScrollPane scrollPane=new JScrollPane(table);f.getContentPane().add(scrollPane,BorderLayout.CENTER);f.setTitle("Simple Table");f.pack();f.show();f.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}});}public static void main(String[] args){SimpleTable b=new SimpleTable();}}表格由两部份组成:分别是行标题(Column Header)与行对象(Column Object).利用JTable 所提供的getTableHeader()方法取得行标题。
跟我学Java GUI Swing组件技术及应用实例——Swing普通容器编程技术及应用实例
件响应)方法中显示出弹出式菜单。
5、弹出式菜单JPopupMenu编程应用 (1)功能特性 (2)编程创建弹出式菜单对象主要步骤 创建弹出式菜单对象及其内的各个菜 单项目 添加各个菜单项到弹出式菜单中、并注 册各个菜单项目的事件监听器对象
将弹出式菜单添加到父容器中 在控件的事件响应(或在容器的mouseReleased()事
4、表格组件JTable编程及应用 (1)功能——它提供以行和列方式显示数据,并且可以拖 动数据列 (2)构造函数
(3)JTable的编程方法 可以采用表格中的表头数组和数据数组创建出表格 也可以利用实现TableModel接口的类对象来实现
(4)JTable表格控件的编程步骤 创建出JTable对象——可以采用表格的表头数组和数 据数组创建出表格或者利用实现TableModel接口的类 对象 再创建出一个JScrollPane对象并指示其ScrollBar的 使用策略; 将表格控件加入JScrollPane滚动面板中; 最后将JScrollPane对象加人到顶级容器的 ContentPane中
(3)构造函数
(4)JTabbedPane事件编程 选项窗格页切换:实现ChangeListener接口 其内的组件事件编程 在各个页面内的组件的事件是独立的,类似于正常的 组件事件编程规则。
3、分隔面板JSplitPane编程及应用 (1)功能:它将某个面板分割为两个不同的区域,六种常量决定
(5)创建的示例代码
2、JTabbedPane编程及应用 (1)选项窗格组件的特性——它表现为一组文件夹页, 每个文件夹都有标题;其内的每个页面为一个JPanel类或 者其子类的对象。
(2)编程方法 创建出JTabbedPane类的对象; 调用addTab()方法加入一个页面组件 最后将JTabbedPane类的对象加入到顶级容器的 ContentPane中。
跟我学Java Swing GUI组件技术及应用实例——JToolBar工具条的编程应用示例
super("窗口的标题条文字"); /**
* 以下分别创建出工具条的各个按钮 */ ImageIcon newImage=
new ImageIcon(this.getClass().getResource(".\\images\\AppFiles.gif")); newButton=new JButton(newImage); newButton.setToolTipText("新建"); newButton.addActionListener(this); ImageIcon openImage=
JToolBar 可以在程序的主窗口之外浮动或是被托拽(而通过 setFloatable(false)方法可以 禁止鼠标拖动功能),它也是一种容器并按照行或列对组件(它们一般为按钮)进行分组, 如下为 JDK 系统帮助文档中对 JToolBar 类的说明信息。
2、工具条的方向 在默认情况下,工具栏是以水平方向进行创建的。当然也可以通过 JToolBar 的常量
new ImageIcon(this.getClass().getResource(".\\images\\save.gif")); saveButton=new JButton(saveImage); saveButton.setToolTipText("保存"); saveButton.addActionListener(this); /**
杨教授工作室,版权所有5 ,盗版必究, 5/10 页
跟我学Java Swing GUI组件技术及应用实例——JMenuBar菜单条式菜单的编程应用示例
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
(3)菜单项类 主要由 JMenuItem(菜单项目)、JCheckBoxMenuItem(选择性的菜单项目,最左侧带
一个复选勾菜单项,单击一次打钩并关闭菜单,再单击一次取消打钩并关闭菜单)、 JRadioButtonMenuItem(选择性的菜单项目但为圆点)等类定义。
杨教授工作室,版权所有6 ,盗版必究, 6/11 页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
3、Java Swing 菜单及菜单条的编程应用示例 (1)程序代码示例
package com.bluedream.swing; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class JMenuDemo extends JFrame implements ActionListener{
mnuFileNew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_ MASK));
mnuFileOpen=new JMenuItem ("打开…"); mnuFileOpen.addActionListener(this);
它是应用程序窗口中常见的顶层菜单栏,比如包含文件、编辑、格式等等子菜单的菜 单条,即包含菜单的容器。
在 Java Swing 的界面设计和编程实现中,一般是通过 JMenuBar 类(利用 setJMen到窗体中。
杨教授工作室,版权所有1 ,盗版必究, 1/11 页
跟我学Java GUI Swing组件技术及应用实例——Swing对话框编程技术及应用实例
3、showXXXDialog()方法中的各个参数的通用说明 (1)ParentComponent:指示对话框的父窗口对象,一般 为当前窗口。也可以为null即采用缺省的Frame作为父窗 口,此时对话框将设置在屏幕的正中。 (2)message:指示要在对话框内显示的描述性的文字 (3)String title:标题条文字串 (4)Component:在对话框内要显示的组件(如按钮) (5)Icon:在对话框内要显示的图标 (6)optionType:它决定在对话框的底部所要显示的按钮 选项,一般可以为下面的值: DEFAULT_OPTION YES_NO_OPTION YES_NO_CANCEL_OPTION OK_CANCEL_OPTION。
(1)创建代码示例
(2)执行的结果
9、通用对话框中 的颜色选择对话 框JColorChooser (1)示例结果 (2)创建该对 话框及获得所选 择的颜色示例代 码
(3)将JColorChooser置于某个容器中并添加事件的代码 示例
10、用户自定义的对话框编 程应用 (1)编程要点 从JDialog类来派生; 利用 getContentPane().add( child);添加各个组件 (2)某个对话框的结果
2、利用showXXXDialog()方法显示出不同的对话框 (1)showConfirmDialog()显示确认对话框 (2)showInputDialog()显示输入文本对话框 (3)showMessageDialog()显示信息对话框 (4)showOptionDialog()显示选择性的对话框。
4、信息对话框(MessageD的信息提示
5、确认对话框 (ConfirmDialog) (1)代码示例
(2)应用场合:讯问并等待 用户确认 6、输入对话框(InputDialog) 让用户进行输入 (1)代码示例
跟我学Java GUI Swing组件技术及应用实例——Swing基本组件编程技术及应用实例
2、JCheckBox与JRadioButton的编程及应用 (1)它们在创建方式上的差别 JRadioButton应该放入一个组对象中以形成互斥效果。
(2)事件响应 在事件编程上都是监听 ItemListener接口, 从而可以识别是否被 按下或者弹取。
(3)事件响应的代码示例
3、图像图标 ImageIcon (1)图像图标——可以为按钮和标签提供图标,在Swing中 采用ImageIcon类实现。
(4)创建特定边框的代码示例 首先利用BorderFactory类中的static方法创建出某 一种类型的边框。 然后再调用组件的setBorder( )方法设置为该边框
5、各种编辑框组件 (1)JTextField 、JPasswordField(为JTextField的子 类,可以通过setEchoChar(char)来设置隐藏的字符)与 JTextArea 对于JTextArea组件可以调用它的setLineWrap()方法 能够让文字自动换行。 (2)JLabel标签组件可以包含文字或图像。 (3)JScrollBar滚动条组件
(4)JEditorPane带格式的可编辑的文字框组件 它支持三种不同文件格式内容,纯文本(text/plain)、 RTF格式(text/rtf)、HTML格式(text/html),从而 可以利用它来制作HTML格式的在线帮助。 (5)JTextPane 它为JEditorPane的子类,JTextPane能够提供更多的编 辑功能,如增加文字的颜色、插入图片、字体缩放、文字 风格等更多的排版功能——最终实现Window系统中的“写 字板”的功能。 6、JComboBox组合 框 (1)JComboBox组 合框与下拉列表 框的不同点 调用setEditable(true)方法来设置其可编辑状态,则 为组合框,否则为下拉列表框。
跟我学Java Swing GUI组件技术及应用实例——Java Swing GUI组件相关技术及JFrame的应用示例
1.1跟我学Java Swing GUI组件技术及应用实例——Java Swing GUI组件相关技术及JFrame的应用示例1.1.1Java Swing GUI组件相关技术1、Java Swing GUI组件的技术特性Java Swing 是一个为Java语言的应用程序(Java Application)设计的一套GUI(图形用户界面)工具包,同时也是J2SDK(Java基础类库)的一部分。
应用Java Swing可以构建出Java 应用程序的图形用户界面(GUI)。
(1)是AWT的扩展,它比AWT提供了更多的组件和外观。
如下示图为一个应用Java Swing GUI系统库开发实现仿腾讯QQ软件的界面示例图。
(2)是Sun公司的新一代的图形界面的标准它基于MVC的架构设计思想实现,并提供有LookAndFeel和Layout等界面和业务分离的支持技术。
如下示图为一个应用Java Swing GUI系统库开发实现的模拟Windows 资源管理器的GUI 界面示例图。
(3)Swing组件是纯Java代码(但JFrame、JDialog、JApplet除外),因此与平台无关。
如下示图为一个应用Java Swing GUI系统库开发实现仿腾讯QQ软件的用户聊天通讯主窗口的示例图。
2、Java AWT的缺点Java AWT是Abstract Window Toolkit(抽象窗口工具包)的缩写,是SUN专门针对Java GUI 编程提供的最早的也是最初的开发工具包,用来建立和设置Java图形用户界面,这个工具包提供了一套与本地图形界面交互的接口。
但由于AWT 中的图形函数的实现是与本地操作系统所提供的图形函数之间存在有一一对应的关系(也就是AWT 中的Peers概念),因此当应用AWT 构件图形用户界面时,实际上是利用本地操作系统所提供的图形系统库。
但由于不同的操作系统图形库所提供的功能是有差异的,所以在一个操作系统平台上存在的功能在另外一个操作系统平台上则有可能不提供,从而导致Java GUI与操作系统平台紧密相关而影响了Java的跨平台特性。
JAVA图形界面(GUI)之表格的示例代码
JAVA图形界⾯(GUI)之表格的⽰例代码表格(JTable)是我们在GUI开发中很常⽤的⼀个组件。
表格在可视化编程中⽤于显⽰信息,在Swing编程中⾮常有⽤,当要显⽰⼤量数据时,⽤表格可以清晰的显⽰出来。
本篇博客将演⽰JTable的基本⽤法。
构造⽅法:⽅法名说明JTable()构造⼀个默认的 JTable,使⽤默认的数据模型、默认的列模型和默认的选择模型对其进⾏初始化JTable(int numRows, int numColumns)使⽤ DefaultTableModel 构造具有 numRows ⾏和numColumns 列个空单元格的 JTableJTable(Object[][] rowData, Object[] columnNames)构造⼀个 JTable 来显⽰⼆维数组 rowData 中的值,其列名称为 columnNamesJTable(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() {@Overridepublic 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)));}}运⾏效果:以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
跟我学Java Swing GUI组件技术及应用实例——JTabbedPane选项窗格组件及应用实例
/** * 构建包含 JTabbedPane 组件所在的主窗口 */
super("窗口的标题条文字"); setSize(400,400); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /**
5、JTabbedPane 组件中的卡片页面板的切换 (1)addChangeListener 方法的功能定义
当用户选择 JTabbedPane 中的任何一个选项卡的时候,可以触发一个事件监听。这个监听 接口是 ChangeListener,位于 javax.swing.event 包中。JTabbedPane 类中的 addChangeListener 方法的功能定义如下:
(1)程序代码示例 package com.bluedream.swing; import javax.swing.JButton;
杨教授工作室,版权所有,盗版必究, 6/11 页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTabbedPane; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class JTabbedPaneTest extends JFrame implements ChangeListener {
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1跟我学Java Swing GUI组件技术及应用实例——JTable表格组件及应用实例1.1.1表格控件JTable1、JTable表格控件的主要功能JTable顾名思义就是一个将数据以表格显示的组件,它提供以行和列的方式来显示数据,并且可以拖动列。
如下示图为应用JTable表格控件所创建出的数据表格。
JTable的数据选项不仅仅是可以显示字符串,还可以显示Checkbox选择框、下拉列表框或者图片等内容。
如下为Sun 公司的Swing 教程中的TableDialogEditoDemo 应用程序的执行结果示图,在该示例的数据表格中显示Checkbox选择框、下拉列表框和图片等内容。
2、JTable类的API功能说明(1)JTable类的API功能说明如下示图为JDK API文档中对JTable类的API功能说明的相关信息。
如果需要对数据表格中的表头数据列和数据单元格中的数据列进行定制,则需要通过继承封装表头数据列JTableHeader类或者继承封装数据列的TableColumn类。
如下为JTableHeader类和TableColumn类的功能说明。
(2)表头数据列JTableHeader类的功能说明(3)数据列TableColumn类的功能说明TableColumn 类封装表示JTable中数据列的所有属性,如宽度、大小可调整性、最小和最大宽度。
3、JTable表格控件中的数据可以以多种不同的方式被选中(1)选中某一数据行(2)选中连续的多行数据行(3)选中不连续的多行数据行4、JTable类的构造函数定义可以通过JTable(Object[][] rowData, Object[] columnNames)形式的构造方法创建出数据表格组件,该JTable组件将用来显示一个二维数组rowData 中的值(它是一个行数组),其列名称为columnNames所代表的数组。
JTable类的其它形式的构造函数定义如下:5、JTable 组件中的表示表格数据的数据结构(1)TableModel接口的功能定义由于Java Swing采用了MVC的设计,所以JTable不是用来存放数据的,它只是用来作为视图显示,而真正用来存储和维护数据的是TableModel这个接口的实现类。
因此可以通过实现TableModel这个接口,然后在对应的实现类中定义数据表格中的行、列数据单元格。
(2)实现TableModel接口的实现类的代码示例package com.bluedream.swing;import javax.swing.event.TableModelListener;import javax.swing.table.TableModel;public class SomeOneTableModel implements TableModel {@Overridepublic int getRowCount() {return 0;}@Overridepublic int getColumnCount() {return 0;}@Overridepublic String getColumnName(int columnIndex) {return null;}@Overridepublic Class<?> getColumnClass(int columnIndex) {return null;}@Overridepublic boolean isCellEditable(int rowIndex, int columnIndex) { return false;}@Overridepublic Object getValueAt(int rowIndex, int columnIndex) {return null;}@Overridepublic void setValueAt(Object aValue, int rowIndex, int columnIndex) { }@Overridepublic void addTableModelListener(TableModelListener l) {}@Overridepublic void removeTableModelListener(TableModelListener l) {}}(3)通过继承AbstractTableModel的子类定义数据表格中的数据由于直接实现TableModel接口实现重写许多无关的功能方法,因此可以改用继承AbstractTableModel的子类的方式定义数据表格中的数据。
AbstractTableModel类的功能定义如下:在继承AbstractTableModel类的子类中只需要重写如下的三个功能方法:1)public int getRowCount();2)public int getColumnCount();3)public Object getValueAt(int row, int column);如下的代码示例是通过在继承AbstractTableModel类的子类中定义数据表格中的数据:package com.bluedream.swing;import javax.swing.table.AbstractTableModel;public class SomeOneTableModel extends AbstractTableModel {public int getColumnCount(){return 10;}public int getRowCount(){return 10;}public Object getValueAt(int row, int col){return new Integer(row*col);}}(4)应用TableModel接口的实现类或者AbstractTableModel类的子类的对象实例创建出JTable类的对象实例TableModel tableData = new SomeOneTableModel ();JTable someOneDataTable = new JTable(tableData);(5)直接定义数据表格中的行、列数据创建出数据表格在创建JTable类的对象实例时,除了可以应用TableModel接口的实现类或者AbstractTableModel类的子类的对象实例创建出JTable类的对象实例以外,也可以采用直接定义数据表格中的行、列数据的方式创建出数据表格,如下为该方法的代码示例:String tableHead[]={"第一列","第二列","第三列"};Object [][]tableData={{"第一行第一列","第一行第二列","第一行第三列"},{"第二行第一列","第二行第二列","第二行第三列"},{"第三行第一列","第三行第二列","第三行第三列"}};JTable someOneDataTable =new JTable(tableData, tableHead);6、创建出JTable对象的编程方法可以采用表格中的表头数组和数据数组创建出表格,也可以利用实现TableModel接口的类对象来实现。
如下为表格控件JTable的编程步骤:(1)创建出JTable对象可以采用表格中的表头数组和数据数组创建出表格,或者利用实现TableModel接口的类对象。
(2)再创建出一个JScrollPane对象并指示其ScrollBar的使用策略;(3)将表格控件加入JScrollPane中;(4)最后将JScrollPane对象加人到顶级容器的ContentPane中。
7、应用TableModel接口的实现类封装数据表格数据的方法创建数据表格的示例代码(1)示例程序代码package com.bluedream.swing;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.table.AbstractTableModel;import javax.swing.table.TableModel;public class JTableTest extends JFrame{public JTableTest() {super("窗口的标题条文字");/*** 应用TableModel接口的实现类封装数据表格数据的方法创建数据表格*/TableModel dataModel = new AbstractTableModel(){public int getColumnCount(){return 10;}public int getRowCount(){return 10;}public Object getValueAt(int row, int col){return new Integer(row*col);}};JTable table = new JTable(dataModel);JScrollPane scrollPane=new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);this.setContentPane(scrollPane);setSize(500,500);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public static void main(String []args){JTableTest frame=new JTableTest();}}(2)示例程序代码执行的效果8、应用封装数据表格数据的二维数组的方法创建数据表格的示例代码(1)示例程序的代码package com.bluedream.swing;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;public class JTableTest extends JFrame{String tableHead[]={"第一列","第二列","第三列"};Object [][]tableData={{"第一行第一列","第一行第二列","第一行第三列"},{"第二行第一列","第二行第二列","第二行第三列"},{"第三行第一列","第三行第二列","第三行第三列"}};public JTableTest() {super("窗口的标题条文字");JTable table=new JTable(tableData,tableHead);JScrollPane scrollPane=new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);this.setContentPane(scrollPane);setSize(500,500);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public static void main(String []args){JTableTest frame=new JTableTest();}}(2)示例程序代码的执行结果。