实例 JTree(右键菜单,可拖拽)+Jtable(可翻页,列中含有按钮,隐藏列)(一)

2014-11-24 09:40:03 · 作者: · 浏览: 5
在来看一下代码吧,基本代码由Eclipse上的WindowBuilder进行拖拽式产生的,所以看起来有点乱,不过没事
在使用WindoerBuilder的时候要画JTree和JTable,这两个有几个共同点,必须放到JScrollPanel中,因为这两个控件的内容会可能有很多。
 
package test;  
  
import java.awt.BorderLayout;  
import java.awt.Component;  
import java.awt.EventQueue;  
import java.awt.GridBagConstraints;  
import java.awt.GridBagLayout;  
import java.awt.Insets;  
import java.awt.event.ActionEvent;  
import java.awt.event.ActionListener;  
import java.awt.event.MouseAdapter;  
import java.awt.event.MouseEvent;  
import java.util.List;  
  
import javax.swing.AbstractAction;  
import javax.swing.DefaultCellEditor;  
import javax.swing.JButton;  
import javax.swing.JFrame;  
import javax.swing.JLabel;  
import javax.swing.JPanel;  
import javax.swing.JPopupMenu;  
import javax.swing.JScrollPane;  
import javax.swing.JTabbedPane;  
import javax.swing.JTable;  
import javax.swing.JTextField;  
import javax.swing.JTree;  
import javax.swing.border.EmptyBorder;  
import javax.swing.table.AbstractTableModel;  
import javax.swing.table.TableCellRenderer;  
import javax.swing.tree.DefaultMutableTreeNode;  
  
import com.car.client.controller.DocsTreeTransferHanlder;  
import com.car.cs.pojodata.VEachDir;  
import com.car.cs.pojodata.VEachFile;  
import com.car.rmi.client.DocsMgtRmi;  
  
public class InnerDocsMgt extends JFrame {  
  
    /** 
     *  
     */  
    private static final long serialVersionUID = 1L;  
    private JPanel contentPane;  
    private JTable table;  
    private JTree tree;  
    private JLabel currentDirLabel;  
    private JLabel totalFilesNumLabel;  
    private List docFils;  
    private final int maxFilesAPage = 50;  
    private JLabel curPageLabel;  
    private int curPageNum = 0;  
  
    /** 
     * Launch the application. 
     */  
    public static void m
ain(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { InnerDocsMgt frame = new InnerDocsMgt(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public InnerDocsMgt() { setTitle("\u5185\u90E8\u8D44\u6599\u7BA1\u7406"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); this.setSize(800, 600); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); contentPane.setLayout(new BorderLayout(0, 0)); setContentPane(contentPane); JPanel panel = new JPanel(); contentPane.add(panel, BorderLayout.WEST); GridBagLayout gbl_panel = new GridBagLayout(); gbl_panel.columnWidths = new int[] { 54, 0, 0, 0, 0, 0, 0, 0 }; gbl_panel.rowHeights = new int[] { 31, 0, 0 }; gbl_panel.columnWeights = new double[] { 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE }; gbl_panel.rowWeights = new double[] { 0.0, 1.0, Double.MIN_VALUE }; panel.setLayout(gbl_panel); JLabel lblNewLabel = new JLabel( "\u5185\u90E8\u8D44\u6599\u76EE\u5F55\u5217\u8868"); GridBagConstraints gbc_lblNewLabel = new GridBagConstraints(); gbc_lblNewLabel.gridwidth = 5; gbc_lblNewLabel.insets = new Insets(0, 0, 5, 5); gbc_lblNewLabel.gridx = 0; gbc_lblNewLabel.gridy = 0; panel.add(lblNewLabel, gbc_lblNewLabel); JButton button_4 = new JButton("\u4FDD\u5B58\u76EE\u5F55\u64CD\u4F5C"); GridBagConstraints gbc_button_4 = new GridBagConstraints(); gbc_button