java界面问题

zr_dixuexiongying 2008-02-17 03:33:41
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;


public class TextField extends JFrame
{
private JLabel lbl1 = new JLabel("姓名");
private JLabel lbl2 = new JLabel("密码");
private JButton btnLogin = new JButton("登录");
private JButton btnExit = new JButton("退出");
private JPasswordField field1 = new JPasswordField(10);
private JTextField field2 = new JTextField(10);


public TextField(String title)
{
super(title);
Container container = getContentPane();
container.setLayout(new FlowLayout());

container.add(lbl1);
container.add(field2);

container.add(lbl2);
container.add(field1);

//注册时间监听器
HandEvent ev = new HandEvent();
field1.addActionListener(ev);
field2.addActionListener(ev);

container.add(btnLogin);
container.add(btnExit);

JDialog.setDefaultLookAndFeelDecorated(true);

btnLogin.addActionListener(ev);
btnExit.addActionListener(ev);

setSize(400,300);
setVisible(true);
}


public class HandEvent implements ActionListener
{
String output = " ";

public void actionPerformed(ActionEvent event)
{
if(event.getSource()==field2)
JOptionPane.showMessageDialog(null,"你的姓名是:"+event.getActionCommand());

else if(event.getSource()==field1)
JOptionPane.showMessageDialog(null,"密码是:"+event.getActionCommand());

else if(field1.getText().toString().equals("") & field2.getText().toString().equals(""))
{
JOptionPane.showConfirmDialog(TextField.this,"用户名和密码不能为空!!!","警告",JOptionPane.YES_NO_OPTION,JOptionPane.ERROR_MESSAGE);
}

else if(field2.getText().toString().equals(""))
{
JOptionPane.showConfirmDialog(TextField.this,"用户名不能为空!!!","警告",JOptionPane.YES_NO_OPTION,JOptionPane.ERROR_MESSAGE);
}

else if(field1.getText().toString().equals(""))
{
JOptionPane.showConfirmDialog(TextField.this,"密码不能为空!!!","警告",JOptionPane.YES_NO_OPTION,JOptionPane.ERROR_MESSAGE);
}

else if(event.getSource() == btnExit)
{
System.exit(0);
}
}
}

public static void main(String[] args)
{
JFrame.setDefaultLookAndFeelDecorated(true);
TextField fi = new TextField("Login");
fi.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}
}

请问 一下大家我按退出按钮怎么不起做用啊!就是如果姓名和密码为空的话,还要弹出其他的对话框,而不是直接退出的!所以我觉得很奇怪!难道逻辑有什么问题吗!按道理说不论用户名和密码是否为空,只要已经点击了退出按钮,就应该退出啊!
...全文
223 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
乐乐不在这 2009-06-16
  • 打赏
  • 举报
回复
呵呵
rain_night 2008-02-17
  • 打赏
  • 举报
回复
将退出按钮的事件放到别的事件之前去:
即:
if(是否退出==退出){
退出
}else{
判断其他事件
}
枫叶rain 2008-02-17
  • 打赏
  • 举报
回复
else if(event.getSource() == btnExit)
{
System.exit(0);
}
把这个写成判断条件的第一个条件就好了
if(event.getSource() == btnExit)
{
System.exit(0);
}
其他的为else if
lanicetomas 2008-02-17
  • 打赏
  • 举报
回复
由于你是用同一个事件监听器,你把按钮的判断放在对文本的判断的前面就好了,因为你每次有actionPerformed时,你判断文本,并且成立,自然,你后面对按钮事件的判断语句不能执行了!
dracularking 2008-02-17
  • 打赏
  • 举报
回复
错了 和类名无关
不知道lz是要按“退出”按钮直接退出还是间接退出还是不退出还是其他什么

现在测试下来的情况是
1.只要用户名框和密码框有任一个为空 按退出按钮就会跳出对话框 无法退出
2.两者均不为空按退出有效 立即退出
3.按右上角X 不管什么情况 都直接退出

如果你要按退出键不管怎么样都退出就应该在回调函数的前几个if分支中加入退出代码
yiyi_wx 2008-02-17
  • 打赏
  • 举报
回复

else if (field1.getText().toString().equals("") &
field2.getText().toString().equals("")) {
JOptionPane.showConfirmDialog(TextField.this, "用户名和密码不能为空!!!",
"警告", JOptionPane.YES_NO_OPTION,
JOptionPane.ERROR_MESSAGE);
}

else if (field2.getText().toString().equals("")) {
JOptionPane.showConfirmDialog(TextField.this, "用户名不能为空!!!",
"警告", JOptionPane.YES_NO_OPTION,
JOptionPane.ERROR_MESSAGE);
}

else if (field1.getText().toString().equals("")) {
JOptionPane.showConfirmDialog(TextField.this, "密码不能为空!!!", "警告",
JOptionPane.YES_NO_OPTION,
JOptionPane.ERROR_MESSAGE);
}

你在这里做的判断就是如果为空弹出提示框啊
可以这样修改:
1、监听器中加一个判断,判断点击的是登录或是退出按钮,然后执行不同的操作
2、分别针对登录及退出做不同的监听器处理
dracularking 2008-02-17
  • 打赏
  • 举报
回复
把类(TextField)改个名字吧
它是现存的
内容概要:本文围绕基于电压-电流双闭环控制的断续导通模式(DCM)反激式开关电源展开系统性仿真研究,整合仿真模型、理论文献与Mathcad计算书三大资源,深入阐述该电源系统的设计原理与实现方法。研究重点在于构建电压外环与电流内环的双闭环控制策略,以提升电源的动态响应速度、输出电压稳定性和负载调整率。通过Matlab/Simulink等工具建立精确仿真模型,验证DCM模式下反激变换器的能量传递特性、开关器件应力分布及反馈控制环路的稳定性表现。同时,借助Mathcad完成关键电路参数的数学建模与设计计算,确保理论分析与仿真结果的高度一致性,实现从理论推导到工程实践的闭环验证。; 适合人群:具备电力电子技术基础,从事开关电源设计、电力变换器开发或自动化控制等相关领域研究的研发工程师及高校研究生。; 使用场景及目标:①掌握反激式开关电源在DCM模式下的工作机理与系统建模方法;②学习电压-电流双闭环控制器的设计流程、稳定性分析与参数整定技术;③实现理论计算、数学推导与仿真实践的深度融合,支撑科研项目复现或实际工程原型开发。; 阅读建议:建议读者结合所提供的仿真文件、技术文献与Mathcad计算文档同步学习,注重理论公式推导与仿真波形结果的对照分析,动手调整控制器参数以深入理解系统动态响应特性与稳定性边界。

62,622

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧