JAVA中JPopupMenu的一点问题 大神请进

一个很简单的问题,就几行代码,如下:JPopupMenukuaijie=newJPopupMenu();fuzhi1=newJMenuItem("复制");kuaijie... 一个很简单的问题,就几行代码,如下:
JPopupMenu kuaijie=new JPopupMenu();
fuzhi1=new JMenuItem("复制");
kuaijie.add(fuzhi1);
textarea.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e){checkForTriggerEvent(e);}
public void mouseReleased(MouseEvent e){checkForTriggerEvent(e);}
private void checkForTriggerEvent(MouseEvent e)
{
if(e.isPopupTrigger())
{
popupMenu.show(e.getComponent(),e.getX(),e.getY());
}
}
});
死都不能显示右键快捷菜单,求大神指教
展开
 我来答
未来需努力点缀
2013-06-25 · TA获得超过4679个赞
知道大有可为答主
回答量:850
采纳率:50%
帮助的人:523万
展开全部

lz  你好


JPopupMenu应该是在点击右键的时候  实现吧


给lz一个完整的例子:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class _PopupMenu extends JFrame{
private JPopupMenu popupMenu;
private JMenuItem copy = new JMenuItem("复制");

public _PopupMenu(){
super("右键子菜单");

popupMenu = new JPopupMenu();
popupMenu.add(copy);

addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
//如果点击右键  显示子菜单
if(e.getButton() == MouseEvent.BUTTON3){
//获取相对于窗口的逻辑位置
Point p = e.getPoint();

popupMenu.show(e.getComponent(), p.x, p.y);
}

//否则不显示子菜单
else{
popupMenu.setVisible(false);
}
}
});

setSize(300,300);
setLocationRelativeTo(null);
setDefaultCloseOperation(3);
setVisible(true);
}

public static void main (String[] args) {
new _PopupMenu();
}
}


运行效果:




希望能帮助你哈

追问
请问下面的自动换行怎么不对了
lineWrap=new CheckboxMenuItem("自动换行");
else if(e.getSource()==lineWrap)
{

textarea.setLineWrap(!textarea.getLineWrap());

}
somken
2013-06-25 · TA获得超过711个赞
知道小有建树答主
回答量:371
采纳率:100%
帮助的人:157万
展开全部

你添加右键菜单的方法错了:

textarea.setComponentPopupMenu(kuaijie);这样添加

我写了一个例子你看看:



package org.somken;

import java.awt.PopupMenu;

import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JTextArea;

public class JPopupMenuFrame extends JFrame{

public JPopupMenuFrame() {
// TODO Auto-generated constructor stub
super("右键菜单");
this.setSize(330, 200);
this.setLayout(null);
this.setLocation(100, 50);

JTextArea textarea=new JTextArea(100,10);
textarea.setBounds(10, 10, 100, 100);
JPopupMenu kuaijie=new JPopupMenu();
JMenuItem fuzhi1=new JMenuItem("复制");
kuaijie.add(fuzhi1);

//添加右键菜单
textarea.setComponentPopupMenu(kuaijie);

JPanel pane=new JPanel();
pane.add(textarea);
setContentPane(pane);

setVisible(true);
}
public static void main(String[] args) {
new JPopupMenuFrame();
}

}
追问
请问下面的自动换行怎么不对了
lineWrap=new CheckboxMenuItem("自动换行");
else if(e.getSource()==lineWrap)
{
textarea.setLineWrap(!textarea.getLineWrap());
}
追答
你可以设置一下滚动条 只出现垂直的滚动,把水平滚动关闭 就可以自动换行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
banchanbana242
2018-01-30
知道答主
回答量:1
采纳率:0%
帮助的人:900
展开全部
jpopmenu没有注册吧!在哪用就在哪add(kuaijir);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式