如何为 JLabel 创建快捷键?

How to create a shortcut key for a JLabel?

enter image description here

我有一个列表 JLabel。我想在JTextArea点击标签内容时显示的一样。为什么点击标签后,文本区域不显示?

代码:

   jLabel0.setText(namelist.get(0));
   jLabel1.setText(namelist.get(1));
   jLabel2.setText(namelist.get(2));
   jLabel3.setText(namelist.get(3));
   jLabel4.setText(namelist.get(4));
   jLabel5.setText(namelist.get(5));
    //String  b[]={"jLabel4","jLabel5","jLabel7","jLabel8","jLabel9","jLabel10"};
   for (int i=0;i<k;i++){
    
   String f=String.valueOf(i);
   JLabel jlb = new JLabel("jLabel"+f);
   String Af=file_list.get(i);
   FileReader F=new FileReader(Af);
   jlb.addMouseListener(new MouseListener(){
        public void mouseReleased(MouseEvent e) {
         }

        public void mousePressed(MouseEvent e) {
        }

        public void mouseExited(MouseEvent e) {
        }

        public void mouseEntered(MouseEvent e) {
        }

        public void mouseClicked(MouseEvent e) {
            if(e.getClickCount()==1)
            {
               
                try {
                    jTextArea3.read(F,"");
                } catch (IOException ex) {
                    Logger.getLogger(FAKENEWS.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
           
        }
    });
   }

您可以使用 JButton 简单地实现它,只需让按钮看起来像一个标签。 创建按钮后,您需要执行以下操作:

     setFocusPainted(false);
     setMargin(new Insets(0, 0, 0, 0));
     setContentAreaFilled(false);
     setBorderPainted(false);
     setOpaque(false);

如果您希望 setFocusPainted(false) 真正绘制焦点(例如 Windows 外观上的虚线边框),您可能需要排除 setFocusPainted(false)

然后您可以使用按钮事件处理程序来执行您想要的操作。