16. september 2001 - 16:34Der er
1 kommentar og 1 løsning
TextField på touch skærm
Jeg har lavet et program der skal kunne bruges på en pc med touch skærm. Der er nogle TextFields hvor der skal kunne indtastes værdier fra et nummer tastatur bestående af JButtons. Problemet er nu, hvordan jeg lettest får værdien ind i et bestemt TextField?? Jeg har en ide om at det skal være sådan at man først markere med fingeren på det TextField man ønsker at indtaste i, og derefter taster på JButtons nummer tastaturet.
Der er noget demo kode nede i main, som opretter den normale formular, og bruger klassen NumberPad. Man kan evt. supplere med en button som explicit åbner for editeringen (Hvis requestfocus skulle fejle eller noget).
public NumberPad(JTextField destination) { this.destination = destination;
frame = new JFrame(\"Enter data\"); frame.getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT));
// Call hide on close frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { hide(); } });
addButtons();
// Show this panel, when destination receive focus. destination.addFocusListener(new FocusListener() { public void focusGained(FocusEvent fe) { show(); } public void focusLost(FocusEvent fe) {} });
frame.pack(); }
private void addButtons() { no1 = new JButton(\"1\"); no1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { append(\"1\"); } }); ok = new JButton(\"Ok\"); ok.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { hide(); } }); frame.getContentPane().add(no1); frame.getContentPane().add(ok); }
public void hide() { frame.setVisible(false); destination.transferFocus(); }
public static void main (String args[]) { JFrame frame = new JFrame(\"Accessibility\"); frame.getContentPane().setLayout(new FlowLayout()); frame.getContentPane().add(new JButton(\"Dummy\")); JTextField tf = new JTextField(20); // Add the helper frame. We don\'t even need a reference. new NumberPad(tf); frame.getContentPane().add(tf); frame.getContentPane().add(new JButton(\"Dummy\")); frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); }
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.