Originariamente inviato da Salinas
Si può avere un piccolo esempio?
codice:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;
public class TestFrame extends JFrame {
private JTextField textField;
private LetterButtonListener listener;
private JPanel buttonsPanel;
public TestFrame() {
super("Test");
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setSize(300, 200);
textField = new JTextField();
listener = new LetterButtonListener();
buttonsPanel = new JPanel(new FlowLayout());
createLetterButton('0');
createLetterButton('1');
createLetterButton('2');
createLetterButton('A');
createLetterButton('B');
getContentPane().add(textField, BorderLayout.NORTH);
getContentPane().add(buttonsPanel, BorderLayout.CENTER);
}
private void createLetterButton(char letter) {
JButton b = new JButton(String.valueOf(letter));
b.addActionListener(listener);
buttonsPanel.add(b);
}
private class LetterButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
JButton b = (JButton) e.getSource(); // "So" che la sorgente è un JButton
try {
Document d = textField.getDocument();
d.insertString(textField.getCaretPosition(), b.getText(), null);
textField.requestFocusInWindow();
} catch (BadLocationException ex) {
// In teoria non dovrebbe mai capitare
}
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new TestFrame().setVisible(true);
}
});
}
}