Swing接收用户输入,以#号结束,输出按字典次序最小的字符

Swing接收用户输入,以#号结束,输出按字典次序最小的字符

运行结果如下

Screenshot from 2014-03-21 15:17:07

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import javax.swing.JTextPane;
import javax.swing.JTextField;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.ActionEvent;
/*****************************
作者:Jerome Chan
网站: www.jeromechan.com
*****************************/
public class KeyDemo {
    private static char minChar = 'a';
    private static void createAndShowGUI() {
    final JTextField textfield = new JTextField(20);
    final JTextPane panel = new JTextPane();
    panel.setEditable(false);
    textfield.addKeyListener(new KeyAdapter() {
        public void keyReleased(KeyEvent e) {
        if (e.getKeyChar() == '#') {
            panel.setText("你输入最小的字符是:" + minChar);
            textfield.setText("");
        }
        else {
        if(e.getKeyChar() < minChar) {
            minChar=e.getKeyChar();
            //panel.setText("");
        }
        //else
        //panel.setText("");
        }
    }});
    JFrame.setDefaultLookAndFeelDecorated(true);
        //Create and set up the window.
        JFrame frame = new JFrame("HelloWorldSwing");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().add(textfield, BorderLayout.NORTH);
    frame.getContentPane().add(new JScrollPane(panel), BorderLayout.CENTER);
    frame.setSize(300, 400);
    frame.pack();
    frame.setVisible(true);
    }
    public static void main(String[] args) {
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            createAndShowGUI();
        }
    });
    }
}
posted @ 2014-03-25 21:52  天行健小区  阅读(351)  评论(0)    收藏  举报