!!!Swingコンポーネントのイベントを他コンポーネントにスルーさせる 各コンポーネントの processXXXXEvent メソッドを呼び出す。KeyEventなどを特定せずに全てのイベントを渡す場合は processEvent を呼び出す。 !!サンプル {{code Java, import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class test { public static void main(String[] args){ JFrame frame = new JFrame(); Container c = frame.getContentPane(); c.setLayout(new GridLayout(2,1)); JTextField tf = new JTextField(); final TestTextField tf2 = new TestTextField(); tf.addKeyListener(new KeyListener(){ @Override public void keyPressed(KeyEvent e){ tf2.processKeyEvent(cloneEvent(e)); } @Override public void keyReleased(KeyEvent e){ tf2.processKeyEvent(cloneEvent(e)); } @Override public void keyTyped(KeyEvent e){ tf2.processKeyEvent(cloneEvent(e)); } private KeyEvent cloneEvent(KeyEvent e){ return new KeyEvent( (Component)e.getSource(), e.getID(), e.getWhen(), e.getModifiers(), e.getKeyCode(), e.getKeyChar(), e.getKeyLocation() ); } }); c.add(tf); c.add(tf2); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.pack(); frame.setVisible(true); } } class TestTextField extends JTextField { @Override public void processKeyEvent(KeyEvent e){ super.processKeyEvent(e); } } }} {{category2 プログラミング言語,Java}}