import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Testing extends JFrame
{
JLabel lbl = new JLabel("Text entered = ");
public Testing()
{
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(600,300);
setLocation(200,100);
JPanel main = new JPanel(new BorderLayout());
main.add(lbl,BorderLayout.CENTER);
JButton btn = new JButton("Get some text");
btn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
lbl.setText("<html>Text entered = <br>"+
new MyJOptionPane().showInputDialog("Enter some text").replaceAll("\\n","<br>")+
"</html>");}});
main.add(btn,BorderLayout.SOUTH);
getContentPane().add(main);
}
public static void main(String[] args){new Testing().setVisible(true);}
}
class MyJOptionPane extends JOptionPane
{
public static String showInputDialog(final String message)
{
String data = null;
class GetData extends JDialog implements ActionListener
{
JTextArea ta = new JTextArea(5,10);
JButton btnOK = new JButton(" OK ");
JButton btnCancel = new JButton("Cancel");
String str = null;
public GetData()
{
setModal(true);
getContentPane().setLayout(new BorderLayout());
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setLocation(400,300);
getContentPane().add(new JLabel(message),BorderLayout.NORTH);
getContentPane().add(ta,BorderLayout.CENTER);
JPanel jp = new JPanel();
btnOK.addActionListener(this);
btnCancel.addActionListener(this);
jp.add(btnOK);
jp.add(btnCancel);
getContentPane().add(jp,BorderLayout.SOUTH);
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource() == btnOK) str = ta.getText();
dispose();
}
public String getData(){return str;}
}
data = new GetData().getData();
return data;
}
}