關於TC中的複製貼上問題
阿新 • • 發佈:2021-09-03
如果直接用原生系統的複製貼上,因為在TC,如果你選中ITEM或其他東西,剪貼簿就會發生變化。
所以要重寫鍵盤事件,來重新設定剪貼簿
nameTJTextField.addKeyListener(new KeyListener(){ @Override public void keyPressed(KeyEvent e) {} @Override public void keyReleased(KeyEvent e) { System.out.println("keycode"+e.getKeyCode()); if(e.getKeyCode()==KeyEvent.VK_CONTROL&&e.getKeyCode() == KeyEvent.VK_C ||e.isControlDown()&&e.getKeyCode() == KeyEvent.VK_C|| (!e.isControlDown())&&e.getKeyCode() == KeyEvent.VK_C) { System.out.println("複製事件"); Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); //獲得系統貼上板 String selectStr=""; if(nameTJTextField instanceof JTextField){ selectStr=((JTextField)nameTJTextField).getSelectedText(); } System.out.println("複製文字:" + selectStr); StringSelection textInfoSelected = new StringSelection(selectStr); //建立一個貼上板內容例項. clipboard.setContents(textInfoSelected, null); //將textInfoSelected加入到貼上板中; AIFClipboard aifclipboard = AIFPortal.getClipboard(); aifclipboard.clearClipboard(); } } @Override public void keyTyped(KeyEvent arg0) { System.out.println("33333"); } });