import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class Test extends JPanel {
private static final long serialVersionUID = 1L;
public Test() {
try {
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
JTextField tf = new JTextField();
tf.setBounds(100, 100, 100, 30);
add(tf);
}
});
} catch (Exception exc) {
System.out.println("Can't create because of " + exc);
}
}
public static void main(String[] args) {
JFrame frame = new JFrame();
Test panel = new Test();
frame.getContentPane().add(panel);
panel.setLayout(new GridLayout());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(600, 300, 200, 200);
frame.setVisible(true);
}
}
Powyższy kod tworzy sobie JTextFielda. JTextField jak JTextField ... ale pewna sekwencja zdarzeń wyrzuca ArrayIndexOutOfBoundsException. Wpisuje 12345, zaznaczam mychą 34 .. naciskam spację - mam 12 5. Teraz zaznaczam wszystko z lewej na prawą i przepis na ArrayIndexOutOfBoundsException gotowy. Próbowałem wg zaleceń użyć wątku, ale jak widać - nie działa. Pytam więc ... wtf ?