1

良い方法で同時に多くのポップアップ メニューを表示する方法を教えJPopupMenu@Override show(Component invoker, int x, int y)くださいsetInvoker(invoker);。これに関する問題は、ポップアップを削除することができないことです。

質問:JPopupMenuより多くの s が表示されているときに s を引き続き表示する方法JPopupMenuはありますか?

public class MultiPopupMenu {

    public static void main(String[] args){

        // Create popup
        JPopupMenu menu1 = createPopupMenu("First label");
        JPopupMenu menu2 = createPopupMenu("Second label");

        // Create labels
        JLabel label1 = new JLabel("abcde");
        JLabel label2 = new JLabel("1234");

        JPanel panel = new JPanel();
        panel.add(label1);
        panel.add(label2);

        // Add labels
        JFrame frame = new JFrame();
        frame.add(panel);

        frame.setPreferredSize(new Dimension(200,100));
        frame.pack();
        frame.setVisible(true);

        // Show popups
        menu1.show(label1,-40,20); // Not showing
        menu2.show(label2, 0,20);
    }

    private static JPopupMenu createPopupMenu(String label){
        JPopupMenu popup = new JPopupMenu();
        JLabel lblTest = new JLabel(label);
        popup.add(lblTest);
        popup.setBackground(Color.YELLOW);
        return popup;
    }
}
4

2 に答える 2