当前位置:  技术问答>java相关

简单问题,问题简简单单

    来源: 互联网  发布时间:2015-06-22

    本文导语:  String kk=new String(jPasswordField1.getPassword()); if(kk.equals("")){   JOptionPane.showMessageDialog(this,"请输入密码","提示", JOptionPane. ERROR_MESSAGE);     System.out.println("AAA");   jPasswordField1.requestFocus();     } 为什么弹出对话框后...

String kk=new String(jPasswordField1.getPassword());
if(kk.equals("")){
  JOptionPane.showMessageDialog(this,"请输入密码","提示", JOptionPane. ERROR_MESSAGE);  

  System.out.println("AAA");
  jPasswordField1.requestFocus();

    }

为什么弹出对话框后,关不掉呢?好象是if语句一直循环似的
每次确定,总是显示AAA
怎么办??

|
这可能是由于密码文本框反复失去焦点造成的,很可能和一些焦点转移事件及其相关代码有关。建议你仔细分析一下requestFocus()方法的实现机理,另外仔细检查所有事件Listener的实现代码。

|
你如果没有在密码框中输入数据,必定弹出这个对话框,
确定后输出AAA,然后退出if,焦点返回到密码框
这段代码没有错。
我试过了,没有出现你所说的对话框关不掉的问题
奇怪了
我给你我试过的代码,点击jbutton2触发你给的代码。
jbutton1退出界面。
程序没有错误
import javax.swing.*;
import java.awt.*;
import com.borland.jbcl.layout.*;
import java.awt.event.*;
public class Test extends JDialog {
  JPanel jPanel1 = new JPanel();
  XYLayout xYLayout1 = new XYLayout();
  JButton jButton1 = new JButton();
  JPasswordField jPasswordField1 = new JPasswordField();
  JButton jButton2 = new JButton();
  public static void main(String[] args) {
   Test alpha = new Test();
    alpha.show();
  }

  public Test() {
    try {
      this.setSize(400,300);
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  private void jbInit() throws Exception {
    jPanel1.setLayout(xYLayout1);
    jButton1.setText("jButton1");
    jButton1.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton1_actionPerformed(e);
      }
    });

    jButton2.setText("jButton2");
    jButton2.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton2_actionPerformed(e);
      }
    });
    this.getContentPane().add(jPanel1, BorderLayout.CENTER);
    jPanel1.add(jButton1,   new XYConstraints(153, 189, -1, -1));
    jPanel1.add(jPasswordField1,    new XYConstraints(132, 78, 128, -1));
    jPanel1.add(jButton2,  new XYConstraints(42, 80, -1, -1));
  }


  void jButton1_actionPerformed(ActionEvent e) {
    this.dispose();
    System.exit(0);
  }

  void jButton2_actionPerformed(ActionEvent e) {
    String kk = new String(jPasswordField1.getPassword());
    if(kk.equals("")){
      JOptionPane.showMessageDialog(this,"请输入密码","提示", JOptionPane. ERROR_MESSAGE);
      System.out.println("AAA");
     jPasswordField1.requestFocus();
    }
  }
}

|
代码没有问题的,你看看我的代码!!!

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class backframe extends JFrame
{
public static void main(String[] args)
{
backframe frame = new backframe();
frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
frame.addWindowListener(new WindowAdapter()
{
public void windowClosed(WindowEvent e)
{
System.exit(0);
}
});
}
JPasswordField jp = new JPasswordField();
JButton btn = new JButton("test");
public backframe()
{
getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER));
getContentPane().add(jp);
jp.setColumns(10);
getContentPane().add(btn);
this.setTitle("Test Password");
this.setVisible(true);
this.pack();
//this.setBounds(30,30,450,350);

btn.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
aa();
}
});
}

void aa()
{
String kk=new String(jp.getPassword());
if(kk.equals(""))
{
JOptionPane.showMessageDialog(this,"请输入密码","提示",JOptionPane.ERROR_MESSAGE);  
System.out.println("AAA");
jp.requestFocus();
}
}
}

|
这个问题好像没有答案,不过可以告诉你一个经验,把
jPanel1.add(jButton1,   new XYConstraints(153, 189, -1, -1));
  和 jPanel1.add(jPasswordField1,    new XYConstraints(132, 78, 128, -1));换一下就可以了,就是先添加jPasswordField1,再添加别的,java没有象vc里那样指定焦点顺序,估计就是按添加顺序。

|
在jPasswordField1.requestFocus();之前先判断一下对话框的返回值,然后在让jPasswordField1得到焦点。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 简单问题简单问题简单问题简单问题
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 小问题,急问题,重大问题!!!
  • sharepoint 2010中item.Update()和item.SystemUpdate 修改数据版本问题解决
  • 弱弱的一问,linux下的中文问题及网络问题,分不是问题
  • 八个问题帮你快速了解Docker
  • 请教两个小问题:一个cgywin下使用vi的问题,另一个socket的问题
  • 错误:将'const x'作为'x'的'this'实参时丢弃了类型限定问题解决
  • 网页的编码问题!或者java的编码问题,由此引出一条解决中文问题的思路
  • nginx Windows版相关问题及使用说明
  • 死锁的问题 多级锁定问题 循环锁定问题
  • vs2010下禁用vmware的方法以及解决vmware插件导致vs2010变慢的问题
  • [问题]双系统出现的问题!求问题的原因和解决办法!
  • Linux下时钟同步问题:Clock skew detected原因分析及解决方法
  • 初学者问题。一个是编译hello world的问题,一个是配置ssh的问题
  • c/c++服务器程序内存泄露问题分析及解决
  • C程序问题:哪个高手帮我解释下下面的问题,主要是a[0]和&[0] 的区别 和编译器的问题??
  • ​部署 Docker 前必须问自己的四个问题
  • swing的问题还是jbuiler的问题??
  • spring的事务类型及spring和hibernate可能导致的问题分析
  • 菜鸟第一次安装红帽子7.2的一箩筐问题。每个问题会开个帖子,各放100分!请有安装经验的老鸟们帮忙解决。第二个问题:什么是LILO?怎么样


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3