July 16
Quando si tratta di trattare con interfacce grafiche (GUI) e l'aggiunta di funzionalità e la grafica di risonanza e l'integrazione di applicazioni Java, Java Foundation Classes, o JFC, ottenere il lavoro fatto. JFC ha molte caratteristiche avanzate ed efficienti che ingranano direttamente con componenti GUI, come swing e Java 2D. Queste interfacce di programmazione delle applicazioni, o API, hanno CCP (taglia, copia e incolla) i controlli che possono lavorare con elementi di testo e non di testo o GUI.
1 Inserire il seguente codice nella mappa azione di installare tagliare, copiare e incollare le azioni dei componenti Java Swing:
setMappings private void (elenco JList) {
ActionMap map = list.getActionMap();
map.put (TransferHandler.getCutAction (). getValue (Action.NAME),
TransferHandler.getCutAction ());
map.put (TransferHandler.getCopyAction (). getValue (Action.NAME),
TransferHandler.getCopyAction ());
map.put (TransferHandler.getPasteAction (). getValue (Action.NAME),
TransferHandler.getPasteAction ());
2 Aggiungere il seguente frammento di codice per impostare le associazioni del PCC alla mappa di input del progetto:
// Necessario solo se non è stato impostato il menu degli acceleratori
InputMap imap = this.getInputMap();
imap.put (KeyStroke.getKeyStroke ( "ctrl X"),
. TransferHandler.getCutAction () getValue (Action.NAME));
imap.put (KeyStroke.getKeyStroke ( "Ctrl C"),
. TransferHandler.getCopyAction () getValue (Action.NAME));
imap.put (KeyStroke.getKeyStroke ( "ctrl V"),
. TransferHandler.getPasteAction () getValue (Action.NAME));
In alternativa, inserire il seguente codice per attivare il taglio e copiare le azioni dei componenti Swing GUI Java:
menuItem = new JMenuItem ( "tagliare");
menuItem.setActionCommand((String)TransferHandler.getCutAction().
getValue (Action.NAME));
menuItem.addActionListener (ActionListener);
menuItem.setAccelerator (
KeyStroke.getKeyStroke (KeyEvent.VK_X, ActionEvent.CTRL_MASK));
menuItem.setMnemonic (KeyEvent.VK_T);
mainMenu.add (menuItem);
3 Aggiungere il seguente codice classe chiamata TransferActionListener a qualsiasi parte della vostra applicazione swing per designare quale componente dovrebbe ricevere l'azione PCC:
public class TransferActionListener implementa ActionListener,
PropertyChangeListener {
privato JComponent focusOwner = null;
TransferActionListener pubblico () {
KeyboardFocusManager manager = KeyboardFocusManager.
getCurrentKeyboardFocusManager ();
manager.addPropertyChangeListener ( "permanentFocusOwner", this);
}
propertyChange public void (PropertyChangeEvent e) {
Object o = e.getNewValue ();
se (o instanceof JComponent) {
focusOwner = (JComponent) o;
} altro {
focusOwner = null;
}
}
public void actionPerformed (ActionEvent e) {
if (focusOwner == null)
ritorno;
azione String = (String) e.getActionCommand ();
Azione a = focusOwner.getActionMap () ottenere (azione).;
se (a! = null) {
a.actionPerformed (nuova ActionEvent (focusOwner,
ActionEvent.ACTION_PERFORMED,
nullo));
}
}
}
4 Scarica il Java Development Kit 6 dal sito web di Oracle e installarlo sulla vostra macchina. Fare clic sul pulsante "Avvia" per eseguire ListCutPaste dal menu principale. Scegliere una voce dagli elenchi visualizzati e utilizzare il menu "Modifica" o la tastiera per tagliare o copiare dalla sorgente voce di elenco che preferisci. Scegliere la voce lista in cui si desidera incollare l'oggetto GUI. Incollarlo utilizzando menu Modifica o il suo equivalente della tastiera. Questa azione esegue fondamentalmente la stessa operazione drag and drop.