import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class WindowTalk {
JDialog dialog;
JTextField dialogField = new JTextField(12);
private JPanel getContent() {
final JTextField textField = new JTextField(12);
JButton button = new JButton("send data");
ActionListener al = new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text = textField.getText();
dialogField.setText(text);
if(dialog.isVisible()) {
dialog.toFront();
} else {
dialog.setVisible(true);
}
}
};
textField.addActionListener(al); // Enter key
button.addActionListener(al);
JPanel panel = new JPanel(new BorderLayout());
panel.add(wrap(textField), "First");
panel.add(wrap(button), "Last");
return panel;
}
private JPanel wrap(JComponent c) {
JPanel panel = new JPanel();
panel.add(c);
return panel;
}
private void showDialog(Frame f) {
dialog = new JDialog(f, "Dialog", false);
dialog.add(wrap(dialogField), "First");
dialog.setSize(200,100);
dialog.setLocation(390,100);
dialog.setVisible(true);
}
private JTextField getTextField(Container parent) {
Component[] c = parent.getComponents();
for(int i = 0; i < c.length; i++) {
//System.out.println(c[i].getClass().getSimpleName());
if((Container)c[i] instanceof JTextField) {
return (JTextField)c[i];
}
if(((Container)c[i]).getComponentCount() > 0) {
return getTextField((Container)c[i]);
}
}
return null;
}
public static void main(String[] args) {
WindowTalk test = new WindowTalk();
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(test.getContent());
f.setSize(240,150);
f.setLocation(100,100);
test.showDialog(f);
f.setVisible(true);
test.getTextField(f).requestFocusInWindow();
}
} |