1.向文本框内输入字符串 如果输入的是1234 则在控制台显示“正确” 我对textField进行监听 用Scanner scanner = new Scanner(System.in);进行输入 但是好像死机一样 没有反应 这是咋回事呢? 
code: 
tf.addActionListener(new ActionListener() 

public void actionPerformed(ActionEvent e) 

String s = "1234"; 
Scanner scanner = new Scanner(System.in); 
String a = scanner.next(); 
if (a==s) 

System.out.println("ddd"); 

else 

System.out.println("SSS"); 


} ); 
2.要在Container上显示鼠标的位置 以及单击的是左键还是右键 怎么做?我会在控制台上去输出位置 但是不知道在面板如何去显示呢?还有怎么判断单击的左右键呢? 
3.按钮单击事件 单击一次 在控制台输出“1” 单击2次 在控制台输出“2” 对什么就行监听呢?鼠标单击 还是按钮?

解决方案 »

  1.   

    为什么不直接用 tf.getText()??
      

  2.   

    这是因为界面与命令行不能这样交互, 没用过, 猜的.但要在界面中使用输入, 可以使用JOptionPane中的showInputPane来处理更好.
      

  3.   

    1、swing程序默认是单线程的,也就是线程不安全的
    由于swing 程序的主线程要处理系统的各种事件,所以就不会处理你的输入事件,也就是把你的界面锁住了。
    你应该用线成,也就是再启动一个线程来处理你的输入,就好了。
    2、在事件的属性里会有。
    3、应该对鼠标单击事件监听,到时候系统会把鼠标单击时间传导你的响应函数里的
      

  4.   

    事件监听就好了 在按钮上增加事件监听 mouseListener
      

  5.   

    代码片段:
    this.button.addMouseListener(new MouseAdapter(){
                public void mouseClicked(MouseEvent e) {
    if(e.getButton() == MouseEvent.BUTTON2 && e.getClickCount()==2){//右键双击
                    domethod();
                }
            });
      

  6.   

    1:
    java swing的核心是事件模式,所有的操作都是以事件的形式来触发的。这些事件会放在Event Queue里,按顺序来调用
    (太久没做swing了,具体的东西记不清楚了,你可以看看javax.swing.SwingUtilities这个类,从invokeLater进去就可以看到)
    在一个event处理完毕前,其他的event是无法被调用的
    而你的Scanner本身是阻塞侦听的,他会将event阻塞住,造成其他的界面操作,如重绘无法进行,这样界面就死掉了,输入也无法进行
    你可以在actionPerformed里用一个线程启动scanner第二个问题上面有人回答了第三个问题也很容易,就在actionPerformed里,只不过需要一个类变量 int clickTImes,每次都++一下就可以-----------------------------
    来上海吧
    http://topic.csdn.net/u/20080429/18/2ef7e7f7-7a00-4838-b4a7-ed8104b756ed.html