📄 uniondataexample.java
字号:
/* (swing1.1beta3) */package tame.examples;import java.awt.Container;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.util.Vector;import javax.swing.Box;import javax.swing.BoxLayout;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JScrollPane;import javax.swing.JSeparator;import javax.swing.JTable;import javax.swing.SwingConstants;import javax.swing.event.TableModelEvent;import javax.swing.table.AbstractTableModel;import javax.swing.table.DefaultTableModel;/**<pre>java.lang.ArrayIndexOutOfBoundsException: 3 >= 3 at java.util.Vector.elementAt(Vector.java:432) at tame.examples.UnionDataExample$3.getValueAt(UnionDataExample.java:64)</pre>@author Nobuo Tamemasa@version 1.0 11/09/98*/public class UnionDataExample extends JFrame { UnionDataExample() { super( "UnionData Example" ); setSize( 300, 200 ); final String[] headers = {"a", "b", "c", "d"}; final String[][] data = new String[6][headers.length]; final AbstractTableModel dmAB = new AbstractTableModel() { public int getRowCount() { return data.length; } public int getColumnCount() { return headers.length; } public String getColumnName(int col) { return headers[col]; } public Object getValueAt(int row, int col) { return data[row][col]; } }; final int rowCountA = 3; DefaultTableModel dmA = new DefaultTableModel(data, headers) { public int getRowCount() { return rowCountA; } public Object getValueAt(int row, int col) { Vector rowVector = (Vector)dataVector.elementAt(row); return rowVector.elementAt(col); } public void setValueAt(Object value, int row, int col) { data[row][col] = (String)value; Vector rowVector = (Vector)dataVector.elementAt(row); rowVector.setElementAt(value, col); TableModelEvent event = new TableModelEvent(this, row, row, col); fireTableChanged(event); dmAB.fireTableChanged(event); } }; DefaultTableModel dmB = new DefaultTableModel(data, headers) { public int getRowCount() { return rowCountA; } //public int getRowCount() { return data.length - rowCountA; } public Object getValueAt(int row, int col) { Vector rowVector = (Vector)dataVector.elementAt(row + rowCountA); return rowVector.elementAt(col); } public void setValueAt(Object value, int row, int col) { int sRow = row + rowCountA; data[sRow][col] = (String)value; Vector rowVector = (Vector)dataVector.elementAt(sRow); rowVector.setElementAt(value, col); TableModelEvent event = new TableModelEvent(this, sRow, sRow, col); fireTableChanged(event); dmAB.fireTableChanged(event); } }; JScrollPane scrollA = new JScrollPane(new JTable( dmA )); JScrollPane scrollB = new JScrollPane(new JTable( dmB )); JScrollPane scrollAB = new JScrollPane(new JTable( dmAB )); Box box = new Box(BoxLayout.Y_AXIS); box.add(new JLabel("Table A")); box.add(scrollA); box.add(new JSeparator(SwingConstants.VERTICAL)); box.add(new JLabel("Table B")); box.add(scrollB); Box boxAB = new Box(BoxLayout.Y_AXIS); boxAB.add(new JLabel("Table A + B")); boxAB.add(scrollAB); Container content = getContentPane(); content.setLayout(new BoxLayout(content,BoxLayout.X_AXIS)); content.add(box); content.add(new JSeparator(SwingConstants.HORIZONTAL)); content.add(boxAB); } public static void main(String[] args) { UnionDataExample frame = new UnionDataExample(); frame.addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent e ) { System.exit(0); } }); frame.setVisible(true); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -