java swing 怎样建立表格_swing_tableModel 创建表格

本文通过一个简单的示例展示了如何使用Java Swing创建并填充表格。主要涉及到JTable、TableModel以及如何设置表格数据和列名。代码示例中创建了一个包含两列的表格,并实现了数据的动态更新监听。
摘要由CSDN通过智能技术生成

1 importjava.awt.BorderLayout;2 importjava.awt.EventQueue;3 importjava.awt.Panel;4 importjava.util.ArrayList;5 importjava.util.List;6

7 importjavax.swing.JFrame;8 importjavax.swing.JPanel;9 importjavax.swing.JScrollPane;10 importjavax.swing.JTable;11 importjavax.swing.border.EmptyBorder;12 importjavax.swing.event.TableModelEvent;13 importjavax.swing.event.TableModelListener;14 importjavax.swing.plaf.basic.BasicTabbedPaneUI.TabbedPaneLayout;15 importjavax.swing.table.TableModel;16

17 public class test extendsJFrame {18

19 privateJPanel contentPane;20

21 /**

22 * Launch the application.23 */

24 public static voidmain(String[] args) {25 EventQueue.invokeLater(newRunnable() {26 public voidrun() {27 try{28 test frame = newtest();29 frame.setVisible(true);30 } catch(Exception e) {31 e.printStackTrace();32 }33 }34 });35 }36

37 /**

38 * Create the frame.39 */

40 publictest() {41 List list = new ArrayList<>();42 list.add(new Person("1", "11", "111"));43 list.add(new Person("2", "22", "222"));44 list.add(new Person("3", "33", "333"));45 Model model = newModel();46 Panel parent = newPanel();47 JTable table = newJTable();48 table.setModel(model);//为table 分配model

49 JScrollPane jPane = new JScrollPane(table);//将table放进滚动条 放进滚动条后可显示列名50 //getContentPane()得到JFrame最底层的JPanel 默认拥有一个不可直接向JFrame添加 需向JPanel添加

51 getContentPane().add(jPane);52 table.setVisible(true);53

54 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);55 setBounds(100, 100, 450, 300);56

57 }58

59 }60

61 class Model implementsTableModel {62 ListList;63 Object[][] p = { { "11", "Taipei" }, { "22", "ChiaYi", }, { "33", "ChiaYi", }, { "44", "ChiaYi", } }; //表格数据

64 String n[] = { "AA", "BB" }; //属性名

65

66 @Override67 public Class> getColumnClass(intcolumnIndex) {68 return Object.class;69 }70

71 /*

72 * 为表格传入列数73 *74 * @see javax.swing.table.TableModel#getColumnCount()75 */

76 @Override77 public intgetColumnCount() {78

79 returnn.length;80 }81

82 /*

83 * 为表格传入属性名84 *85 * @see javax.swing.table.TableModel#getColumnName(int)86 */

87 @Override88 public String getColumnName(intcolumnIndex) {89 returnn[columnIndex];90 }91

92 /*

93 * 为表格传入行数94 *95 * @see javax.swing.table.TableModel#getRowCount()96 */

97 @Override98 public intgetRowCount() {99 returnp.length;100 }101

102 /*

103 * 将数组中的数据传入表格104 *105 * @see javax.swing.table.TableModel#getValueAt(int, int)106 */

107 @Override108 public Object getValueAt(int rowIndex, intcolumnIndex) {109

110 returnp[rowIndex][columnIndex];111 }112

113 /*

114 * 设置表格是否可编辑115 *116 * @see javax.swing.table.TableModel#isCellEditable(int, int)117 */

118 @Override119 public boolean isCellEditable(int rowIndex, intcolumnIndex) {120 return true;121 }122

123 /*

124 * 每当数据模型发生更改时,就将一个侦听器添加到被通知的列表中。125 *126 * @see127 * javax.swing.table.TableModel#addTableModelListener(javax.swing.event.128 * TableModelListener)129 */

130 @Override131 public voidaddTableModelListener(TableModelListener l) {132

133 }134

135 /*

136 * 每当数据模型发生更改时,就从被通知的列表中移除一个侦听器。137 *138 * @see139 * javax.swing.table.TableModel#removeTableModelListener(javax.swing.event.140 * TableModelListener)141 */

142 @Override143 public voidremoveTableModelListener(TableModelListener l) {144

145 }146

147 /*

148 * 将表格中的值设定为149 *150 * @see javax.swing.table.TableModel#setValueAt(java.lang.Object, int, int)151 */

152 @Override153 public void setValueAt(Object aValue, int rowIndex, intcolumnIndex) {154 p[rowIndex][columnIndex] =aValue;155

156 }157

158 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值