⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 buddylistpanel.java

📁 基于jxta的局域网P2P文件共享,可以实现局域网中的文件p2p共享,实现文件快速传输及交流
💻 JAVA
字号:
package connex.session.desktop;

import java.awt.*;

import javax.swing.*;

import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;

import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import connex.session.plugin.PluginMenuAction;
import connex.session.plugin.PluginDescriptor;
import connex.session.plugin.PluginManager;
import connex.session.plugin.Plugin;


public class BuddyListPanel extends JPanel {

    private BorderLayout borderLayout2 = new BorderLayout();
    private JScrollPane jScrollPane1 = new JScrollPane();
    private BuddyList buddyList = null;
    private Point lastPosition;
    private JPopupMenu jPopupMenu1 = new JPopupMenu();
    private JMenuItem jMenuItem1 = new JMenuItem();
    private JMenuItem jMenuItem2 = new JMenuItem();
    private JMenuItem jMenuItem4 = new JMenuItem();
    private JMenuItem mItem = null;



    public BuddyListPanel(BuddyList bl) {
        this.buddyList = bl; //
        try {
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    private void jbInit() throws Exception {
        this.setLayout(borderLayout2);

        jPopupMenu1.setInvoker(buddyList);
        jMenuItem1.setText("Start private Chate");
        jMenuItem1.addActionListener(new BuddyListPanel_jMenuItem1_actionAdapter(this));

        jMenuItem2.setEnabled(true);
        jMenuItem2.setText("Info");
        jMenuItem2.addActionListener(new BuddyListPanel_jMenuItem2_actionAdapter(this));

        jMenuItem4.setEnabled(false);
        jMenuItem4.setText("Cotent suchen");

        buddyList.addMouseListener(new BuddyListPanel_tree_mouseAdapter(this));
        buddyList.addTreeSelectionListener(new BuddyListPanel_tree_treeSelectionAdapter(this));

        this.add(jScrollPane1, java.awt.BorderLayout.CENTER);
        jScrollPane1.getViewport().add(buddyList);

        jPopupMenu1.add(jMenuItem1);

        jPopupMenu1.addSeparator();
        jPopupMenu1.add(jMenuItem2);
        jPopupMenu1.addSeparator();

        jPopupMenu1.add(jMenuItem4);

    }

    public BuddyList getBuddyList() {
        return this.buddyList;
    }


    public void setPlugin(PluginDescriptor desc) {
        mItem = new JMenuItem("start " + desc.getName());
        mItem.addActionListener(new PluginMenuAction(this, desc));

        jPopupMenu1.add(mItem);

    }

    public void removePlugin(String name) {
        for (int i = 4; i < jPopupMenu1.getComponentCount(); i++) {
            mItem = (JMenuItem) jPopupMenu1.getComponent(i);
            if (mItem.getText().endsWith(name)) {
                jPopupMenu1.remove(i);
            }
        }

    }

    public void buddyList_mouseClicked(MouseEvent e) {
        if (e.getButton() == 3) {
            buddyList.setSelectionRow(buddyList.getRowForLocation(e.getX(), e.getY()));
            Object o = buddyList.getLastSelectedPathComponent();
            if (o instanceof UserNode) {
                UserNode user = (UserNode) o;

                if (user.getState().equals("online")) {

                    jPopupMenu1.show(buddyList, e.getX(), e.getY());
                    lastPosition = e.getPoint();
                }
            }
        }

    }

    public void buddyList_valueChanged(TreeSelectionEvent e) {

    }

    public void Plugin_Item_actionPerformed(ActionEvent e) {
        Object o = buddyList.getLastSelectedPathComponent();
        if (o instanceof UserNode) {
            UserNode user = (UserNode) o;

            //Plugin pe = PluginManager.getInstance().getPlugin(e.getActionCommand());
            Plugin pe = PluginManager.getInstance().loadConcretePlugin(e.getActionCommand());

            if (pe != null) {

                pe.createSession(user.getId());

            }
        }
    }

    public void jMenuItem1_actionPerformed(ActionEvent e) {
        UserNode user = (UserNode) buddyList.getLastSelectedPathComponent();

    }

    public void jMenuItem2_actionPerformed(ActionEvent e) {
        Object o = buddyList.getLastSelectedPathComponent();
        if (o instanceof UserNode) {
            UserNode user = (UserNode) o;
            ProfileUI prof = new ProfileUI(user.getId());
            int x = (int) lastPosition.getX();
            int y = (int) lastPosition.getY();

            prof.setLocation(buddyList.getLocationOnScreen().x + x,
                             buddyList.getLocationOnScreen().y + y);
            prof.setVisible(true);

        }

    }
}


class BuddyListPanel_jMenuItem2_actionAdapter implements ActionListener {
    private BuddyListPanel adaptee;
    BuddyListPanel_jMenuItem2_actionAdapter(BuddyListPanel adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.jMenuItem2_actionPerformed(e);
    }
}


class BuddyListPanel_jMenuItem1_actionAdapter implements ActionListener {
    private BuddyListPanel adaptee;
    BuddyListPanel_jMenuItem1_actionAdapter(BuddyListPanel adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.jMenuItem1_actionPerformed(e);
    }
}


class Plugins_actionAdapter implements ActionListener {
    private BuddyListPanel adaptee;
    Plugins_actionAdapter(BuddyListPanel adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.Plugin_Item_actionPerformed(e);
    }
}


class BuddyListPanel_tree_mouseAdapter extends MouseAdapter {
    private BuddyListPanel adaptee;
    BuddyListPanel_tree_mouseAdapter(BuddyListPanel adaptee) {
        this.adaptee = adaptee;
    }

    public void mouseClicked(MouseEvent e) {
        adaptee.buddyList_mouseClicked(e);
    }
}


class BuddyListPanel_tree_treeSelectionAdapter implements TreeSelectionListener {
    private BuddyListPanel adaptee;
    BuddyListPanel_tree_treeSelectionAdapter(BuddyListPanel adaptee) {
        this.adaptee = adaptee;
    }

    public void valueChanged(TreeSelectionEvent e) {
        adaptee.buddyList_valueChanged(e);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -