最近公司需要使用twaver做一款网管系统!小弟在网上找了n 久没有找到!只好求救! 大概的布局是左边是树形控件(tree)!右边是网络空间(network ),两个控件都有自己的面板(jpanel), 全部添加到分割面板中(JSplitPane),分割面板添加到窗体的面板中,我的需求就是在树形控件中添加菜单(已经做了),监听菜单选择事件,能够根据菜单选项的不同在右边的网络控件中生成新的面板,并显示出来.面板中需要写(JButton JLabel JTextfield 等控件,需要接受JTextfield 等控件中的文本内容) 急 ,希望高手帮我解决!!! 小弟在线等待!! 如果做过类似网络硬盘录像机的能提供资料搞好。 程序为桌面应用程序!
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.SwingUtilities;import twaver.Element;
import twaver.Node;
import twaver.PopupMenuGenerator;
import twaver.TDataBox;
import twaver.TView;
import twaver.TWaverUtil;
import twaver.network.TNetwork;
import twaver.tree.TTree;public class TestNetworkDVR extends JFrame {
private TDataBox databox = new TDataBox();
private TNetwork network = new TNetwork(databox);
private TTree tree = new TTree(databox); public TestNetworkDVR() {
this.init();
this.initDataBox();
this.initListener();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(800, 600);
TWaverUtil.centerWindow(this);
} private void init() {
JSplitPane mainPane = new JSplitPane();
mainPane.setResizeWeight(0.25);
mainPane.setLeftComponent(new JScrollPane(tree));
mainPane.setRightComponent(network);
this.getContentPane().add(mainPane);
} private void initListener() {
tree.setSelectableOnRightClick(true);
tree.setPopupMenuGenerator(new TreePopupMenuGenerator(tree));
} private void initDataBox() {
Node from = new Node();
from.setName("DVR1");
from.setImage("/test/DVR.jpg");
from.setLocation(50, 50);
this.databox.addElement(from); Node to = new Node();
to.setName("DVR2");
to.setImage("/test/DVR.jpg");
to.setLocation(50, 200);
this.databox.addElement(to); this.tree.expandAll();
} public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new TestNetworkDVR().setVisible(true);
}
});
}
private static class TreePopupMenuGenerator implements PopupMenuGenerator {
private TTree tree;
public TreePopupMenuGenerator(TTree tree){
this.tree = tree;
}
public JPopupMenu generate(TView tview, MouseEvent mouseEvent){
if (tree.getDataBox().getSelectionModel().getAllSelectedElement().size() == 1) {
JPopupMenu popMenu = new JPopupMenu();
Element element = tree.getDataBox().getLastSelectedElement();
JMenuItem item = new JMenuItem(element.getName() + ": option1");
item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
popMenu.add(item);
return popMenu;
}else{
return null;
}
}
}
}