Как создать комбинацию клавиш для JLabel? - PullRequest
1 голос
/ 01 марта 2020

введите описание изображения здесь

У меня есть список 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);
                }
            }

        }
    });
   }

1 Ответ

1 голос
/ 01 марта 2020

Вы можете просто добиться этого, используя JButton и просто сделав кнопку похожей на ярлык. После создания кнопки вы захотите сделать следующее:

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

Возможно, вы захотите исключить setFocusPainted(false), если хотите, чтобы он действительно рисовал фокус (например, пунктирная линия на Windows look) и чувствовать).

И после этого вы можете использовать обработчики событий кнопки для выполнения желаемого действия.

...