结果如下所示:

结果如下所示:

通过按钮PressMe来负责树形控件中节点的插入,
chosen = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();这句话获取最后选择的节点,插入会在此节点下插入;
model.insertNodeInto(child, chosen, 0);这句话表示插入分支child,插入位置是chosen,0表示插在它下面的第一个位置
6:表格的创建
java中表格的创建还是比较方便的,我们只需要实现interface TableModel中的三个主要的函数即可,所以我们要用到抽象类
AbstracttableModel,这个类实现了tableModel 中的大部分函数,但是三个函数
public int getRowCount();
public int getColumnCount();
public Object getValueAt(int row, int column);
需要我们另外独自去实现。下面的程序很好的说明了这一点:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
// T he TableModel controls all the data:
class DataModel extends AbstractTableModel {
Object[][] data = {
{"one", "two", "three", "four"},
{"five", "six", "seven", "eight"},
{"nine", "ten", "eleven", "twelve"},
};
// Prints data when table changes:
class TML implements TableModelListener {
public void tableChanged(TableModelEvent e) {
for(int i = 0; i < data.length; i++) {
for(int j = 0; j < data[0].length; j++)
System.out.print(data[i][j] + " ");
System.out.println();
}
}
}
DataModel() {
addTableModelListener(new TML());
}
//必须完成interface TableModel的函数
public int getColumnCount() {
return data[0].length;
}
//必须完成interface TableModel的函数
public int getRowCount() {
return data.length;
}
//必须完成interface TableModel的函数
public Object getValueAt(int row, int col) {
return data[row][col];
}
public void setValueAt(Object val, int row, int col) {
data[row][col] = val;
// Indicate the change has happened:
fireTableDataChanged();
}
public boolean isCellEditable(int row, int col) {
return true;
}
};
public class Table extends JPanel {
public Table() {
setLayout(new BorderLayout());
JTable table = new JTable(new DataModel());
JScrollPane scrollpane = JTable.createScrollPaneForTable(table);
add(scrollpane, BorderLayout.CENTER);
}
public static void main(String args[]) {
JFrame jf = new JFrame();
Table ta = new Table();
jf.add(ta);
jf.setSize(300,300);
jf.setVisible(true);
}
}
结果如下所示:
