package com.runt.android.dialogs; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JDialog; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.KeyStroke; /** * 输入弹框 */ public class DoubleInputDialog extends JDialog { private JPanel contentPane; private JButton buttonOK; private JButton buttonCancel; private JTextField textField1; private JTextArea textArea1; DialogListener listener; public DoubleInputDialog(DialogListener listener){ this(); this.listener = listener; } public DoubleInputDialog() { setContentPane(contentPane); setModal(true); getRootPane().setDefaultButton(buttonOK); buttonOK.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { onOK(); } }); buttonCancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { onCancel(); } }); // call onCancel() when cross is clicked setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { onCancel(); } }); textArea1.setSize(300,400); textArea1.setRows(10); textArea1.setColumns(11); textArea1.setTabSize(4); textArea1.setSelectedTextColor(Color.RED); textArea1.setSelectionColor(Color.BLACK); textArea1.setLineWrap(true); //激活自动换行功能 //textAreaOutput.setEnabled(false); textArea1.setWrapStyleWord(true); contentPane.registerKeyboardAction(new ActionListener() { public void actionPerformed(ActionEvent e) { onCancel(); } }, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); } private void onOK() { // add your code here dispose(); if(listener != null){ listener.Ok(new String[]{textField1.getText(),textArea1.getText()}); } } private void onCancel() { // add your code here if necessary dispose(); } public interface DialogListener{ public void Ok(String[] object); public void cancel(Object object); } public static void main(String[] args) { DoubleInputDialog dialog = new DoubleInputDialog(); dialog.pack(); dialog.setVisible(true); System.exit(0); } }