JAVA初学,求指导。
程序代码:
import java.awt.Toolkit;
import javax.swing.JFrame;
public class fivechess extends JFrame{
public fivechess(){
this.setSize(500,500);
int width=Toolkit.getDefaultToolkit().getScreenSize().width;
int height=Toolkit.getDefaultToolkit().getScreenSize().height;
this.setLocation((width-500)/2, (height-500)/2);
this.setVisible(true);
}
}
import javax.swing.JFrame;
public class fivechess extends JFrame{
public fivechess(){
this.setSize(500,500);
int width=Toolkit.getDefaultToolkit().getScreenSize().width;
int height=Toolkit.getDefaultToolkit().getScreenSize().height;
this.setLocation((width-500)/2, (height-500)/2);
this.setVisible(true);
}
}
程序代码:
import javax.swing.JOptionPane;
public class test {
public static void main(String[] args)
{
fivechess fc=new fivechess();
String username;
do{
username=JOptionPane.showInputDialog("请输入你的用户名:");
if(username!=null || username!="")
{
System.out.println(username);
JOptionPane.showMessageDialog(fc,"你的名字是"+ username);
}
else
{
JOptionPane.showMessageDialog(fc,"请重新输入你的名字");
}
}
while (username==null || username=="");
}
}
public class test {
public static void main(String[] args)
{
fivechess fc=new fivechess();
String username;
do{
username=JOptionPane.showInputDialog("请输入你的用户名:");
if(username!=null || username!="")
{
System.out.println(username);
JOptionPane.showMessageDialog(fc,"你的名字是"+ username);
}
else
{
JOptionPane.showMessageDialog(fc,"请重新输入你的名字");
}
}
while (username==null || username=="");
}
}
其中fc调用firechess类。
在eclipes中调试,直接确定,并不提示出错。只是不输入用户名时,程序一样执行。请找出bug。
----------------解决方案--------------------------------------------------------
我的本意是用户输入空字符时。系统能检测出空字符。并阻止用户使用空字符命名。。确定后出现。希望是跳过这个步骤。实现
程序代码:
JOptionPane.showMessageDialog(fc,"请重新输入你的名字");
这个窗口。我的代码上已经写出了if的判断语句。不知到哪里出现了问题。总是不能出现这个窗口提示用户。
----------------解决方案--------------------------------------------------------
改这句
if(username!=null || !username.equals(""))
----------------解决方案--------------------------------------------------------
回复 3楼 hhwz
感谢你的回复,只是改成这句话后,依旧没有什么效果啊。是只有这一个地方有问题么? ----------------解决方案--------------------------------------------------------
if(username!=null && !username.equals(""))
改成并且
----------------解决方案--------------------------------------------------------
回复 5楼 hhwz
不可能吧,我有没有同时满足这两个条件。当用户单机取消时username的值为null,不填任何数据时,单机确定,username得到的却是String类型的“”空值。怎么可能同时满足这两个条件呢? ----------------解决方案--------------------------------------------------------
用不等于 你这个用法就跳不到第2个条件
你知道username确定时为""
但是你条件判断为 username!=null || !username.equals("")
也就是说username!=null ""!=null 满足了 后面的!username.equals("") 就不会执行了
----------------解决方案--------------------------------------------------------
如你所说,改为&&后。程序跳出Debug。 if(username!=null && !username.equals(""))也出现了问题
----------------解决方案--------------------------------------------------------
出现了什么问题?
一般判断不能为空都是if(username!=null && !username.equals(""))这样 判断的
----------------解决方案--------------------------------------------------------