我做了一个登录框的程序,可是有个问题感觉很奇怪!程序如下;
import javax.swing.JOptionPane;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.Dimension;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.event.WindowListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;public class LoginTest extends JFrame
{
private JPanel panel1 = new JPanel();
private JPanel panel2 = new JPanel();
private JPanel panel3 = new JPanel();
private JLabel lblName = new JLabel("姓名");
private JLabel lblPass = new JLabel("密码");
private JTextField field1 = new JTextField(10);
private JPasswordField field2 = new JPasswordField(10);
private JButton btnLogin = new JButton("登录");
private JButton btnExit = new JButton("退出"); public LoginTest(String title)
{
super(title);
this.add(panel1,BorderLayout.NORTH);
this.add(panel2,BorderLayout.CENTER);
this.add(panel3,BorderLayout.SOUTH); panel1.setLayout(new FlowLayout(FlowLayout.CENTER,10,15));
panel2.setLayout(new FlowLayout(FlowLayout.CENTER,10,9));
panel3.setLayout(new FlowLayout(FlowLayout.CENTER,24,8)); panel1.add(lblName);
panel1.add(field1); panel2.add(lblPass);
panel2.add(field2); panel3.add(btnLogin);
panel3.add(btnExit);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent event)
{
System.exit(0);
}
}); JDialog.setDefaultLookAndFeelDecorated(true);
btnLogin.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
if(field1.getText().toString().equals("") & field2.getText().toString().equals(""))
{
JOptionPane.showConfirmDialog(LoginTest.this,"用户名和密码都不能为空","警告",
JOptionPane.YES_NO_OPTION,JOptionPane_ERROR_MESSAGE);
} else if(field1.getText().toString().equals(""))
{
JOptionPane.showConfirmDialog(LoginTest.this,"用户名不能为空","警告",
JOptionPane.YES_NO_OPTION,JOptionPane_ERROR_MESSAGE);
} else if(field2.getText().toString().equals(""))
{
JOptionPane.showConfirmDialog(LoginTest.this,"密码不能为空","警告",
JOptionPane.YES_NO_OPTION,JOptionPane_ERROR_MESSAGE);
}
}
});
this.setResizable(flase);
setSize(400,300);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation((d.width-400)/2,(d.height-300)/2);
setVisible(true);
} public static void main(String[] args)
{
JFrame.setDefaultLookAndFeelDecorated(true);
new LoginTest("登录");
}
}上面这段程序没有问题,就是想不通的是那个if...else语句.我如果把第二和第三个else语句全部写成if,如;
btnLogin.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
if(field1.getText().toString().equals("") & field2.getText().toString().equals(""))
{
JOptionPane.showConfirmDialog(LoginTest.this,"用户名和密码都不能为空","警告",
JOptionPane.YES_NO_OPTION,JOptionPane_ERROR_MESSAGE);
} if(field1.getText().toString().equals(""))
{
JOptionPane.showConfirmDialog(LoginTest.this,"用户名不能为空","警告",
JOptionPane.YES_NO_OPTION,JOptionPane_ERROR_MESSAGE);
} if(field2.getText().toString().equals(""))
{
JOptionPane.showConfirmDialog(LoginTest.this,"密码不能为空","警告",
JOptionPane.YES_NO_OPTION,JOptionPane_ERROR_MESSAGE);
}
}
});当我两个输入框都为空的时候,先弹出用户名和密码不能为空的对话框,接着另外两个对话框也弹出来了,如过我把第三个else语句直接写成else,如;
btnLogin.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
if(field1.getText().toString().equals("") & field2.getText().toString().equals(""))
{
JOptionPane.showConfirmDialog(LoginTest.this,"用户名和密码都不能为空","警告",
JOptionPane.YES_NO_OPTION,JOptionPane_ERROR_MESSAGE);
} else if(field1.getText().toString().equals(""))
{
JOptionPane.showConfirmDialog(LoginTest.this,"用户名不能为空","警告",
JOptionPane.YES_NO_OPTION,JOptionPane_ERROR_MESSAGE);
} else(field2.getText().toString().equals(""))
{
JOptionPane.showConfirmDialog(LoginTest.this,"密码不能为空","警告",
JOptionPane.YES_NO_OPTION,JOptionPane_ERROR_MESSAGE);
}
}
});程序就抱错,说我 else(field2.getText().toString().equals(""))不是语句,并且后面还差;非要if后面的两个控制语句
都要用else if才不会错,所以我一直感到很疑惑,望大家指点指点是什么原因.按理说应该是if...else if....else或者if...if...if都可以啊!
import javax.swing.JOptionPane;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.Dimension;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.event.WindowListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;public class LoginTest extends JFrame
{
private JPanel panel1 = new JPanel();
private JPanel panel2 = new JPanel();
private JPanel panel3 = new JPanel();
private JLabel lblName = new JLabel("姓名");
private JLabel lblPass = new JLabel("密码");
private JTextField field1 = new JTextField(10);
private JPasswordField field2 = new JPasswordField(10);
private JButton btnLogin = new JButton("登录");
private JButton btnExit = new JButton("退出"); public LoginTest(String title)
{
super(title);
this.add(panel1,BorderLayout.NORTH);
this.add(panel2,BorderLayout.CENTER);
this.add(panel3,BorderLayout.SOUTH); panel1.setLayout(new FlowLayout(FlowLayout.CENTER,10,15));
panel2.setLayout(new FlowLayout(FlowLayout.CENTER,10,9));
panel3.setLayout(new FlowLayout(FlowLayout.CENTER,24,8)); panel1.add(lblName);
panel1.add(field1); panel2.add(lblPass);
panel2.add(field2); panel3.add(btnLogin);
panel3.add(btnExit);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent event)
{
System.exit(0);
}
}); JDialog.setDefaultLookAndFeelDecorated(true);
btnLogin.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
if(field1.getText().toString().equals("") & field2.getText().toString().equals(""))
{
JOptionPane.showConfirmDialog(LoginTest.this,"用户名和密码都不能为空","警告",
JOptionPane.YES_NO_OPTION,JOptionPane_ERROR_MESSAGE);
} else if(field1.getText().toString().equals(""))
{
JOptionPane.showConfirmDialog(LoginTest.this,"用户名不能为空","警告",
JOptionPane.YES_NO_OPTION,JOptionPane_ERROR_MESSAGE);
} else if(field2.getText().toString().equals(""))
{
JOptionPane.showConfirmDialog(LoginTest.this,"密码不能为空","警告",
JOptionPane.YES_NO_OPTION,JOptionPane_ERROR_MESSAGE);
}
}
});
this.setResizable(flase);
setSize(400,300);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation((d.width-400)/2,(d.height-300)/2);
setVisible(true);
} public static void main(String[] args)
{
JFrame.setDefaultLookAndFeelDecorated(true);
new LoginTest("登录");
}
}上面这段程序没有问题,就是想不通的是那个if...else语句.我如果把第二和第三个else语句全部写成if,如;
btnLogin.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
if(field1.getText().toString().equals("") & field2.getText().toString().equals(""))
{
JOptionPane.showConfirmDialog(LoginTest.this,"用户名和密码都不能为空","警告",
JOptionPane.YES_NO_OPTION,JOptionPane_ERROR_MESSAGE);
} if(field1.getText().toString().equals(""))
{
JOptionPane.showConfirmDialog(LoginTest.this,"用户名不能为空","警告",
JOptionPane.YES_NO_OPTION,JOptionPane_ERROR_MESSAGE);
} if(field2.getText().toString().equals(""))
{
JOptionPane.showConfirmDialog(LoginTest.this,"密码不能为空","警告",
JOptionPane.YES_NO_OPTION,JOptionPane_ERROR_MESSAGE);
}
}
});当我两个输入框都为空的时候,先弹出用户名和密码不能为空的对话框,接着另外两个对话框也弹出来了,如过我把第三个else语句直接写成else,如;
btnLogin.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
if(field1.getText().toString().equals("") & field2.getText().toString().equals(""))
{
JOptionPane.showConfirmDialog(LoginTest.this,"用户名和密码都不能为空","警告",
JOptionPane.YES_NO_OPTION,JOptionPane_ERROR_MESSAGE);
} else if(field1.getText().toString().equals(""))
{
JOptionPane.showConfirmDialog(LoginTest.this,"用户名不能为空","警告",
JOptionPane.YES_NO_OPTION,JOptionPane_ERROR_MESSAGE);
} else(field2.getText().toString().equals(""))
{
JOptionPane.showConfirmDialog(LoginTest.this,"密码不能为空","警告",
JOptionPane.YES_NO_OPTION,JOptionPane_ERROR_MESSAGE);
}
}
});程序就抱错,说我 else(field2.getText().toString().equals(""))不是语句,并且后面还差;非要if后面的两个控制语句
都要用else if才不会错,所以我一直感到很疑惑,望大家指点指点是什么原因.按理说应该是if...else if....else或者if...if...if都可以啊!
else 不然 就.....[不然] 这个语义 还能跟条件吗?else if 只是一个 组合写法
if(...){...}else if(...){...} 就是下面的意思
if(...){...}else{if(...){...}}
在那里看看有无能回答你的,谢谢,LZ,甭忘了给俺分哦,谢谢LZ
{
msg;
}
else
{
if(user_name==""){
msg;
}
if(pwd==""){
msg;
}
}楼主自己再悟下 IF ELSE结构
{
msg;
}
else
{
if(user_name==""){
msg;
}
if(pwd==""){
msg;
}
}楼主自己再悟下 IF ELSE结构