java se gui控件_Java SE 6之GUI:让界面更加绚丽(下)

importjava.awt.*;importjava.awt.datatransfer.*;importjava.awt.event.*;importjava.io.*;importjavax.swing.*;importjavax.swing.tree.*;publicclassTestDrapDrop

{publicstaticvoidmain(String args[])

{

JFrame f=newJFrame("拖放测试" );

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel top=newJPanel(newBorderLayout());

JLabel dragLabel=new JLabel("拖我:");

JTextField text=newJTextField();

text.setDragEnabled(true);

top.add(dragLabel, BorderLayout.WEST);

top.add(text, BorderLayout.CENTER);

f.add(top, BorderLayout.NORTH);finalJTree tree=newJTree();finalDefaultTreeModel model=(DefaultTreeModel)  tree.getModel();

tree.setTransferHandler(newTransferHandler()

{publicbooleancanImport (TransferHandler.TransferSupport support)

{if(!support.isDataFlavorSupported (DataFlavor.stringFlavor)||!support.isDrop())

{returnfalse;

}

JTree.DropLocation dropLocation=(JTree.DropLocation) suppor

.getDropLocat ion();returndropLocation.getPath()!=null;

}publicbooleanimportData (TransferHandler.TransferSupport support)

{if(!canImport(support))

{returnfalse;

}

JTree.DropLocation dropLocation=(JTree.DropLocation) support

.getDropLocat ion();

TreePath path=dropLocation.getPath();

Transferable transferable=support.getTransferable();

String transferData;try{

transferData=(String) transferable

& nbsp; .getTransferData(DataFlavor.stringFlavor);

}catch(IOException e)

{returnfalse;

}catch(UnsupportedFlavorException e)

{returnfalse;

}intchildIndex=dropLocation.getChildIndex();if(childIndex==-1)

{

childIndex=model.getChildCount(path

& nbsp; .getLastPathComponent());

}

DefaultMutableTreeNode newNode=newDefaultMutableTreeNode(

transferData) ;

DefaultMutableTreeNode parentNode=(DefaultMutableTreeNode) path

.getLastPathC omponent();

model.insertNodeInto (newNode, parentNode, childIndex);

TreePath newPath=path.pathByAddingChild(newNode);

tree.makeVisible(newPath);

tree.scrollRectToVisible(tree.getPathBounds(newPath));returntrue;

}

});

JScrollPane pane=newJScrollPane(tree);

f.add(pane, BorderLayout.CENTER);

JPanel bottom=newJPanel();

JLabel comboLabel=newJLabel("DropMode");

String options[]={"USE_SELECTION","ON","INSERT","ON_OR_INSERT"};finalDropMode mode[]={ DropMode.USE_SELECTION, DropMode.ON, DropMode.INSERT,

DropMode.ON_OR_INSERT };finalJComboBox combo=newJComboBox(options);

combo.addActionListener(newActionListener()

{publicvoidactionPerformed(ActionEvent e)

{intselectedIndex=combo.getSelectedIndex();

tree.setDropMode(mode[selectedIndex]);

}

});

bottom.add(comboLabel);

bottom.add(combo);

f.add(bottom, BorderLayout.SOUTH);

f.setSize(300,400);

f.setVisible(true);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值