gpt4 book ai didi

java - 单击禁用的 JMenuItem 时如何触发操作?

转载 作者:行者123 更新时间:2023-11-30 03:52:09 24 4
gpt4 key购买 nike

我在 SO 中进行了一些谷歌搜索和探索,但找到的所有示例都是针对启用了 JMenuItem 的情况。

我想要做的上下文是,我希望我禁用的 JMenuItem (因为权限有限)在单击时显示一个弹出框,请求用户升级,以便他们可以访问所述JMenuItem

以下是我当前拥有的内容的精简版本,命令行上没有打印任何内容:

public class ExportMenuItem extends JMenuItem
{
public ExportMenuItem()
{
super("Menu Item Name");

addMouseListener(new MouseAdapter()
{
@Override
public void mouseClicked(MouseEvent mouseEvent)
{
if (!isEnabled())
{
JOptionPane.showMessageDialog(editor.getFrame(), "Hello world.");
System.out.println("Sys print hello.");
}
System.out.println("Sys print hello outside.");
}
});
}
}

最佳答案

这是您要找的吗?

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

public class ExportMenuItem extends JMenuItem{

public ExportMenuItem(){
super("menu item");

addMouseListener(new MouseListener(){
@Override
public void mouseClicked(MouseEvent mouseEvent){
if (!isEnabled()) {
JOptionPane.showMessageDialog(null, "Upgrade me!");
}//end of if
}//end of mouseClicked
public void mouseExited(MouseEvent mouseEvent){}
public void mouseEntered(MouseEvent mouseEvent){}
public void mouseReleased(MouseEvent mouseEvent){}
public void mousePressed(MouseEvent mouseEvent){}

// And the remaining methods to implement...
});//end of anonymous class
}//end of constructor

public static void main(String[] a){
JFrame f = new JFrame();
JMenu menu = new JMenu("menu");
JMenuBar menuBar = new JMenuBar();
f.setJMenuBar(menuBar);
f.setSize(300, 300);
f.setVisible(true);
menuBar.add(menu);
JMenuItem item = new ExportMenuItem();
menu.add(item);
item.setEnabled(false);
}//end of main
}//end of class

关于java - 单击禁用的 JMenuItem 时如何触发操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24177171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com