27. februar 2003 - 13:25Der er
3 kommentarer og 3 løsninger
Tabulator - KeyAdapter, KeyListener ??? - HJÆLP
Hej gutter
Jeg har nu spildt lidt over en dags arbejde, i forsøget på at få noget action på når jeg bruge Tab, men helt forgæves. Jeg bruger Jbuilder 8 Personale Edi. med JDK 1.4.1
Mit mål er: Ved tryk på Tabulatoren, skal en Label ændre tekst. Men indtil videre ville det være fint hvis bare JOptionPane.showMessageDialog(null, "test");
Jeg har fået smedet denne kode sammen til formålet...
//Creating the instance of KeyEventHandler KeyEventHandler keyHandler = new KeyEventHandler();
//Adding keyListener to TextFields jobField.addKeyListener(keyHandler); startTimeField.addKeyListener(keyHandler); endTimeField.addKeyListener(keyHandler);
//Getting the pressed key - I Guess ? jobField.getInputMap().put(KeyStroke.getKeyStroke("TAB"), "none"); startTimeField.getInputMap().put(KeyStroke.getKeyStroke("TAB"), "none"); endTimeField.getInputMap().put(KeyStroke.getKeyStroke("TAB"), "none");
//Class KeyEventHandler - setting the action for the Tab private class KeyEventHandler implements KeyListener, KeyAdapter{ public void keyPressed(KeyEvent e){ if(e.getKeyCode() == KeyEvent.VK_END) JOptionPane.showMessageDialog(null, "test"); } }
Hvis nogen har en løsning på dette vil jeg være ekstremus hapinus ;o)
public TestFrame() { super("Test"); setSize(400,400);
final JLabel label = new JLabel("Hit tab!"); JTextArea area = new JTextArea(); area.getInputMap().put(KeyStroke.getKeyStroke("TAB"), "none"); area.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent event) { label.setText("You hit tab!"); } });
Her er et lille test eksempel hvor jeg har brugt en textfield:
import java.awt.*;
public class TextTest extends Frame { public TextTest() { super("TextTest"); setSize(new Dimension(640, 480));
Panel p = new Panel(); p.setLayout(new BorderLayout());
TextField tmp = new TextField(); p.add(tmp, BorderLayout.CENTER); tmp.addKeyListener(new TabList()); tmp.setFocusTraversalKeysEnabled(false);
add(p); setVisible(true); }
public static void main(String[] args) { TextTest f = new TextTest(); }
}
import java.awt.event.*;
public class TabList implements KeyListener { public void keyTyped(KeyEvent e) { System.out.println("KeyTyped"); }
public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_TAB) System.out.println("Tab was pressed!"); System.out.println("KeyPressed"); }
public void keyReleased(KeyEvent e) { System.out.println("KeyReleased"); } }
Kanon, tusind tak for hjælpen c",) Jeg deler pointene mellem jer, da det var tre rigtig gode svar.
Endnu en gang tak for hjælpen c",)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.