现在在学习Swing组件和界面的设计,不知道Swing里面,有没有像windows一样,右键会弹出一个框,就比如在桌面的空白处windows会出现一个排列图标啊,刷新啊,属性什么的一个框,那java的Swing里面有没有这样的组件呢,有没有什么办法实现,有的话求教代码!!

解决方案 »

  1.   

    用netbean,有组件  ,另外,组件不组件,跟java 和swt没关系,这些是IDE提供的
      

  2.   

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class MySwing extends JFrame
    {
    private JPopupMenu popup=new JPopupMenu();//声明一个弹出式菜单
    private JTextArea t=new JTextArea();//声明文本区域
    public MySwing(String s)
    {
    super(s);//设置窗体标题
    ActionListener al=new ActionListener(){
    public void actionPerformed(ActionEvent e) {
    t.setText(((JMenuItem)e.getSource()).getText());
    }
    };
    //添加弹出式菜单内容
    JMenuItem[] popupm={
    new JMenuItem("剪切"),
    new JMenuItem("复制"),
    new JMenuItem("粘贴")
    };
    //将内容添加到弹出式菜单
    for(int i=0;i<popupm.length;i++)
    {
    popupm[i].addActionListener(al);
    popup.add(popupm[i]);
    }
    //注册鼠标事件
    t.addMouseListener(new MouseAdapter(){
    public void mousePressed(java.awt.event.MouseEvent e)
    {
    if(e.isPopupTrigger())//当右键按下时
    popup.show(e.getComponent(),e.getX(),e.getY());
    }
    public void mouseReleased(MouseEvent e)
    {
    if(e.isPopupTrigger())
    popup.show(e.getComponent(),e.getX(),e.getY());
    }
    });
    add(t);
    }

    public static void main(String[] args) {
    MySwing ms=new MySwing("测试右键菜单");
    ms.setSize(200,150);
    ms.setVisible(true);
    ms.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }}