- 浏览: 732310 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
lingsuch:
Android网络连接判断与处理 -
月光照着我:
写的不错,作为笔记了
Android中LayoutInflater的使用 -
智博王锋:
好文章是要顶的!
Android中LayoutInflater的使用 -
云南白药:
...
Android中LayoutInflater的使用 -
万新one:
理解了许多。解释的不错。3Q.
Android中LayoutInflater的使用
import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Graphics; import java.awt.Polygon; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.Icon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.ScrollPaneConstants; import javax.swing.table.AbstractTableModel; import javax.swing.table.TableModel; @SuppressWarnings("serial") public class PagingTester extends JFrame { public PagingTester() { super("Paged JTable Test"); setSize(300, 200); setDefaultCloseOperation(EXIT_ON_CLOSE); PagingModel pm = new PagingModel(); JTable jt = new JTable(pm); // Use our own custom scrollpane. JScrollPane jsp = PagingModel.createPagingScrollPaneForTable(jt); getContentPane().add(jsp, BorderLayout.CENTER); setVisible(true); } public static void main(String args[]) { PagingTester pt = new PagingTester(); pt.setVisible(true); } } //PagingModel.java //A larger table model that performs "paging" of its data. This model //reports a small number of rows (like 100 or so) as a "page" of data. You //can switch pages to view all of the rows as needed using the pageDown() //and pageUp() methods. Presumably, access to the other pages of data is //dictated by other GUI elements such as up/down buttons, or maybe a text //field that allows you to enter the page number you want to display. // @SuppressWarnings("serial") class PagingModel extends AbstractTableModel { protected int pageSize; protected int pageOffset; protected Record[] data; public PagingModel() { this(105, 100); } public PagingModel(int numRows, int size) { data = new Record[numRows]; pageSize = size; // Fill our table with random data (from the Record() constructor). for (int i = 0; i < data.length; i++) { data[i] = new Record(); } } // Return values appropriate for the visible table part. public int getRowCount() { int count = data.length; if (pageOffset == getPageCount() - 1) { count = data.length - pageOffset * pageSize; } return Math.min(pageSize, count); } public int getColumnCount() { return Record.getColumnCount(); } // Work only on the visible part of the table. public Object getValueAt(int row, int col) { int realRow = row + (pageOffset * pageSize); return data[realRow].getValueAt(col); } public String getColumnName(int col) { return Record.getColumnName(col); } // Use this method to figure out which page you are on. public int getPageOffset() { return pageOffset; } public int getPageCount() { return (int) Math.ceil((double) data.length / pageSize); } // Use this method if you want to know how big the real table is . . . we // could also write "getRealValueAt()" if needed. public int getRealRowCount() { return data.length; } public int getPageSize() { return pageSize; } public void setPageSize(int s) { if (s == pageSize) { return; } int oldPageSize = pageSize; pageSize = s; pageOffset = (oldPageSize * pageOffset) / pageSize; fireTableDataChanged(); /* * if (pageSize < oldPageSize) { fireTableRowsDeleted(pageSize, oldPageSize - 1); } else { fireTableRowsInserted(oldPageSize, pageSize - 1); } */ } // Update the page offset and fire a data changed (all rows). public void pageDown() { if (pageOffset < getPageCount() - 1) { pageOffset++; fireTableDataChanged(); } } // Update the page offset and fire a data changed (all rows). public void pageUp() { if (pageOffset > 0) { pageOffset--; fireTableDataChanged(); } } // We provide our own version of a scrollpane that includes // the page up and page down buttons by default. public static JScrollPane createPagingScrollPaneForTable(JTable jt) { JScrollPane jsp = new JScrollPane(jt); TableModel tmodel = jt.getModel(); // Don't choke if this is called on a regular table . . . if (!(tmodel instanceof PagingModel)) { return jsp; } // Okay, go ahead and build the real scrollpane final PagingModel model = (PagingModel) tmodel; final JButton upButton = new JButton(new ArrowIcon(ArrowIcon.UP)); upButton.setEnabled(false); // starts off at 0, so can't go up final JButton downButton = new JButton(new ArrowIcon(ArrowIcon.DOWN)); if (model.getPageCount() <= 1) { downButton.setEnabled(false); // One page...can't scroll down } upButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { model.pageUp(); // If we hit the top of the data, disable the up button. if (model.getPageOffset() == 0) { upButton.setEnabled(false); } downButton.setEnabled(true); } }); downButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { model.pageDown(); // If we hit the bottom of the data, disable the down button. if (model.getPageOffset() == (model.getPageCount() - 1)) { downButton.setEnabled(false); } upButton.setEnabled(true); } }); // Turn on the scrollbars; otherwise we won't get our corners. jsp.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); jsp.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS); // Add in the corners (page up/down). jsp.setCorner(ScrollPaneConstants.UPPER_RIGHT_CORNER, upButton); jsp.setCorner(ScrollPaneConstants.LOWER_RIGHT_CORNER, downButton); return jsp; } } //Record.java //A simple data structure for use with the PagingModel demo. // class Record { static String[] headers = { "Record Number", "Batch Number", "Reserved" }; static int counter; String[] data; public Record() { data = new String[] { "" + (counter++), "" + System.currentTimeMillis(), "Reserved" }; } public String getValueAt(int i) { return data[i]; } public static String getColumnName(int i) { return headers[i]; } public static int getColumnCount() { return headers.length; } } //ArrowIcon.java //A simple implementation of the Icon interface that can make //Up and Down arrows. // class ArrowIcon implements Icon { public static final int UP = 0; public static final int DOWN = 1; private int direction; private Polygon pagePolygon = new Polygon(new int[] { 2, 4, 4, 10, 10, 2 }, new int[] { 4, 4, 2, 2, 12, 12 }, 6); private int[] arrowX = { 4, 9, 6 }; private Polygon arrowUpPolygon = new Polygon(arrowX, new int[] { 10, 10, 4 }, 3); private Polygon arrowDownPolygon = new Polygon(arrowX, new int[] { 6, 6, 11 }, 3); public ArrowIcon(int which) { direction = which; } public int getIconWidth() { return 14; } public int getIconHeight() { return 14; } public void paintIcon(Component c, Graphics g, int x, int y) { g.setColor(Color.black); pagePolygon.translate(x, y); g.drawPolygon(pagePolygon); pagePolygon.translate(-x, -y); if (direction == UP) { arrowUpPolygon.translate(x, y); g.fillPolygon(arrowUpPolygon); arrowUpPolygon.translate(-x, -y); } else { arrowDownPolygon.translate(x, y); g.fillPolygon(arrowDownPolygon); arrowDownPolygon.translate(-x, -y); } } }
发表评论
-
Swing中引入Android的NinePatch技术,让Swing拥有Android的外观定制能力
2012-09-21 09:22 1627【摘要】 本文诣在 ... -
JavaSwing实现支持合并拆分的JTable
2010-12-16 15:39 1976GridBagModel:抽象模型接口。该接口用于描述表格中单 ... -
JTable小例子,表格中使用JComboBox下拉按钮
2010-12-16 15:21 5426import java.awt.BorderLayout; ... -
JScrollBar简单演示例子
2010-12-06 19:28 6623import java.awt.*; import java ... -
点击jtable的表头,数据会根据根据表头来排序
2010-12-06 11:47 5133import javax.swing.JFrame; imp ... -
重写JSplitPane的BasicSplitPaneUI
2010-09-18 13:39 1577import java.awt.Color; import ... -
Swing窗口初始最大化的方法
2010-08-20 11:09 79051.设置窗口最大(伪最大化) JFrame frame =n ... -
Tree目录实现拖拽功能演示实例(DragAndDrop)
2010-08-10 16:49 1801import java.awt.BorderLayout; ... -
设置JTextPane指定内容的颜色
2010-05-21 14:29 1367package Assis; import java.a ... -
ScaleImageDemo图像缩小与放大演示
2010-05-12 14:59 2123package Assis; import java.a ... -
TreesDemo
2010-05-04 11:19 1092import java.awt.*; import java ... -
TableDemo
2010-05-04 11:17 1205import javax.swing.JTable; imp ... -
分割面板演示JSplitPaneDemo
2010-05-04 11:12 1397//Java Swing 带分隔条的面板代码 impor ... -
StylesExample8
2010-04-08 12:55 1206import javax.swing.*; import j ... -
StylesExample7
2010-04-08 12:54 1004import javax.swing.*; import j ... -
StylesExample6
2010-04-08 12:52 1071import javax.swing.*; import j ... -
StylesExample5
2010-04-08 12:51 999import javax.swing.*; import j ... -
StylesExample4
2010-04-08 12:50 1116import javax.swing.*; import j ... -
StylesExample3
2010-04-08 12:50 1010import javax.swing.*; import j ... -
StylesExample2
2010-04-08 12:49 1061import javax.swing.*; import j ...
相关推荐
在“仿分页”实现中,JTable可能被用来显示数据集的一个“页面”,当用户滚动滚动条时,JTable会显示数据集的下一“页面”。 JScrollPane是Swing提供的一种容器,它能够添加一个可滚动的视图,如JTable。...
- 从工具箱中拖拽`JTable`到设计面板。 - 右键点击表头,选择“属性”以编辑表头设置。 - 在代码视图中,添加自定义渲染器的逻辑。 通过以上步骤,你可以使用NetBeans IDE创建一个具有复杂表头的`JTable`。不过...
Java Swing 实现 JTable 检测单元格数据变更事件的方法示例 Java Swing 中的 JTable 是一个功能强大且灵活的表格组件,广泛应用于各种桌面应用程序中。然而,在实际开发中,我们经常需要检测单元格数据的变更事件...
同时,为了实现分页效果,可能还会涉及到动态添加、移除或更新`TabbedPane`上的面板。 最后,`DataTable.java`可能是用于处理实际数据的类,它可能包含了获取数据、计算页数、分页逻辑等功能。在这个类中,可能会有...
JTable的显示效果
下面将详细介绍如何实现`JTable`数据的添加与删除。 ### 一、`JTable`的基本结构 `JTable`通常由三部分组成:`TableModel`、`ColumnModel`和`View`。`TableModel`是数据的来源,存储实际的表格数据;`ColumnModel`...
通过这样的方式,我们实现了`JTable`行间的拖放功能,而且无需实现DnD接口,简化了实现过程。这使得在已有的`JTable`应用中添加此功能变得更加便捷。在实际开发中,你可能还需要处理一些边缘情况,比如拖动到表头或...
`JTable`通常与`JScrollPane`一起使用,以便在数据过多时提供滚动功能。在这个“JAVA JTable使用实例”中,我们将深入探讨如何有效地利用`JTable`来显示和操作数据。 首先,`JTable`是`javax.swing.JTable`类的实例...
实现jTable和jTree的双向联动,点击jTree会选中jTable单元格,点击jTable会选中jTree节点。
JTable使用 JTable使用JTable使用JTable使用
JTable 拖动行 移动行的ui,直接 table.setUI(new DragDropRowTableUI()); 调用
此外,`Table_01`可能还包含如何将`JTable`添加到`JScrollPane`以实现滚动功能,以及如何在`JFrame`或`JPanel`上布置整个组件。 在实际使用中,`JTable`提供了丰富的功能,如排序、选择、编辑单元格等。可以通过...
开发者可以根据需要自定义`TableModel`来适应不同的数据结构,或者通过监听`JTable`的各种事件来实现特定的功能,如单元格更改、行选择等。`JTable`是Java Swing中非常重要的组件,广泛应用于数据展示和用户交互场景...
基于java的学籍管理系统.实现了JTable控件的封装.-.rar基于java的学籍管理系统.实现了JTable控件的封装.-.rar基于java的学籍管理系统.实现了JTable控件的封装.-.rar
在使用 JTable 时,需要注意表格的列宽和行高的设定,这可以使用 TableColumn 的 setMaxWidth() 和 setMinWidth() 方法来实现。 JTable 动态刷新数据需要使用 DefaultTableModel 来存储和管理数据,然后使用...
swing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing ...
`JScrollPane`是一个可以滚动的面板,当表格内容较多时,使用`JScrollPane`可以实现滚动浏览的功能,避免窗口过大导致布局不合理。 #### 三、具体实现步骤 ##### 步骤1:创建基础框架 首先创建一个继承自`JFrame`...
实现了超链接功能的JTable,双击后ie打开超链接,超链接文字为蓝色,同时屏蔽了单元格的双击编辑功能,很实用.
JTable的使用收藏 1.JTable与TableModel 1.TableModel与JTable的关系 2.TableModel实践 3.使用JTable+TableModel展示java中的数据对象 2.JTable展示方式的美化 1.设置表格的宽度和高度 2.要显示表头 3.新加列,将...
- `TableScrollPane`:是一个`JScrollPane`对象,用于容纳JTable,并提供滚动条功能。 - `tableData` 和 `tableHeader`:分别为表格的数据和列头信息存储容器。 #### 数据准备 - `Object[][] data`:一个二维数组...