小编use*_*856的帖子

switch case 不带变量

是否可以编写 switch case 代码而无需在 switch 中指定变量?假设我有两个变量 int x 和 int y。我想根据 x 和 y 的不同组合有条件地运行代码。例如

switch
{
    case (x==1 && y==1): //do something.
        break;
    case (x==3 && y==-1): //do something.
        break;
    case (x==0 && y==3): //do something.
        break;
    default: //do something.
        break;
}
Run Code Online (Sandbox Code Playgroud)

这段代码给我错误。

java case switch-statement

6
推荐指数
1
解决办法
5906
查看次数

从popmenu动作事件中获取右键单击位置

我有一个java程序,在JPanel中右键单击时打开一个弹出菜单.单击任何弹出菜单项时,我想打印在终端中触发弹出菜单的右键单击位置.我该怎么做呢?如何在弹出操作事件中获取右键单击发生位置的位置?

如果弹出菜单位于JComponent中,代码如何更改?

这是程序.

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

    public class MenuTest
    {
        public static void main(String[] args)
        {
            EventQueue.invokeLater(new Runnable()
            {
                public void run()
                {
                    MenuFrame frame = new MenuFrame();
                    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    frame.setVisible(true);
                }
            });
        }
    }

    class MenuFrame extends JFrame
    {
        public MenuFrame()
        {
            setTitle("MenuTest");
            setSize(300, 200);

            Action cutAction = new TestAction("Cut");
            Action copyAction = new TestAction("Copy");
            Action pasteAction = new TestAction("Paste");

            JPopupMenu popup = new JPopupMenu();
            popup.add(cutAction);
            popup.add(copyAction);
            popup.add(pasteAction);

            JPanel panel = new JPanel();
            panel.setComponentPopupMenu(popup);
            add(panel);

            panel.addMouseListener(new MouseAdapter() …
Run Code Online (Sandbox Code Playgroud)

java swing jcomponent coordinates jpopupmenu

5
推荐指数
1
解决办法
3791
查看次数