当前位置: 首页 > 知识库问答 >
问题:

在Java-swing中对菜单项使用鼠标监听器

贲招
2023-03-14

我感觉不到菜单项的点击。我需要创建一个行,当'Road'menuItem是在创建菜单上点击,但什么都没有发生,当我点击它。

import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JMenu;
import java.awt.Color;
public class trafficSimulator extends JFrame {
    private JPanel contentPane;
    /**
     * Launch the application.
     */

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    trafficSimulator frame = new trafficSimulator();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public trafficSimulator() {
        setTitle("STS - Simple Traffic Simulator");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 817, 458);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);

        JPanel panel = new JPanel();
        panel.setBackground(Color.BLACK);
        panel.setBounds(10, 59, 777, 339);
        contentPane.add(panel);

        JMenuBar menuBar = new JMenuBar();
        menuBar.setBorderPainted(false);
        menuBar.setBounds(0, 0, 799, 36);
        contentPane.add(menuBar);

        JMenu mnCreate = new JMenu("Create");
        menuBar.add(mnCreate);

        JMenuItem mnıtmRoad = new JMenuItem("Road");
        mnıtmRoad.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                 DrawLine myline = new DrawLine();

                    panel.add(myline);  // this part doesn't work at all.
            }
        });





        mnCreate.add(mnıtmRoad);

        JMenuItem mnıtmRoundabout = new JMenuItem("Roundabout");
        mnCreate.add(mnıtmRoundabout);

        JMenuItem mnıtmNode = new JMenuItem("Node");
        mnCreate.add(mnıtmNode);

        JMenu mnDelete = new JMenu("Delete");
        menuBar.add(mnDelete);

        JMenu mnSave = new JMenu("Save");
        menuBar.add(mnSave);
    }


}

而这是我将在鼠标侦听器中使用它的对象来创建行的类。

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

public class DrawLine extends JPanel {

  public void paintComponent(Graphics g) {

     //vertical line
     g.setColor(Color.white);
     g.drawLine(20, 20, 20, 120);

  }}

共有1个答案

邹学民
2023-03-14

在Java-swing中对菜单项使用鼠标监听器

别用防鼠器!

JMenuItem被设计为与ActionListener一起使用。

 类似资料:
  • 这是我想要自动化的流(用粗体标记)==>>我对selenium很陌生 文件 脚本二: 我已经尝试了Xpath包含的所有选项(text,href),css和linktext,但没有任何效果。 最初,它鼠标移动了第一个元素(文件),但它在以后的进程中堆积了…! 有关此错误的文档,请访问:http://seleniumhq.org/exceptions/invalid_selector_exceptio

  • 问题内容: 我正在创建一个Java应用程序,它将允许用户查看图像并使用鼠标平移图像。为了实现图像的平移,我使用了JViewports 和事件的组合。大部分代码在mouseDragged方法中 虽然这样做有效,但我认为必须有一种更简便的方法来完成所有这些工作。如果不是全部,是否可以替换防止视口从图像移到周围边界的代码? 问题答案: 尝试使用method代替:

  • 我有一个带有Swing GUI的应用程序,我想在菜单栏中添加一个带有搜索按钮(lupe图标)的搜索字段。但是,卢佩图标不会显示。下面是我的代码: 我的项目结构就像 结果按钮不显示任何图标: 正如您所看到的,我现在正在用Class.GetResource(...)加载图像正如@AndrewThompson和@SergiyMedVynskyy所建议的,但这并不能解决问题。我还被告知我的类不应该是静态的

  • 我正在尝试将鼠标悬停在动画菜单上并在菜单中选择一个项目。我尝试先通过xpath在菜单上执行悬停,然后通过xpath执行单击菜单项,如下所示。 我有个例外 org.openqa.selenium.interactions。MoveTargetOutOfBoundsException:元素内的偏移量无法滚动到视图中 我还尝试将这些行为链接如下: 这也会引发相同的异常。 有什么想法来实现动画菜单项的点击

  • 本文向大家介绍Python中使用PyHook监听鼠标和键盘事件实例,包括了Python中使用PyHook监听鼠标和键盘事件实例的使用技巧和注意事项,需要的朋友参考一下 PyHook是一个基于Python的“钩子”库,主要用于监听当前电脑上鼠标和键盘的事件。这个库依赖于另一个Python库PyWin32,如同名字所显示的,PyWin32只能运行在Windows平台,所以PyHook也只能运行在Win

  • 我使用火狐浏览器。我尝试鼠标悬停在菜单上,但不显示其相应的子菜单,当悬停在主菜单上使用selenium网络驱动程序。它只选择菜单“索赔”,并仅在那里停止。它不执行testScript进一步,因为鼠标悬停子菜单不显示。所以呢 超文本标记语言代码 我必须悬停在菜单"索赔"和选择子菜单"新索赔" 在此处输入图像描述 硒代码 如下图所示,驾驶员检测到菜单“声明”,因为它的颜色比其他菜单的颜色稍暗。但子菜单