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);

}
}

请问 一下大家我按退出按钮怎么不起做用啊!就是如果姓名和密码为空的话,还要弹出其他的对话框,而不是直接退出的!所以我觉得很奇怪!难道逻辑有什么问题吗!按道理说不论用户名和密码是否为空,只要已经点击了退出按钮,就应该退出啊!
...全文
222 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)改个名字吧
它是现存的
内容概要:本文围绕“【SCUC】N-1故障集+安全约束机组组合研究(Matlab代码实现)”展开,系统探讨电力系统在N-1故障场景下的安全约束机组组合(SCUC)问题,旨在实现系统安全性与运行经济性的协同优化。研究通过构建包含机组启停、出力计划、潮流约束、备用容量及N-1安全准则的数学模型,结合混合整数线性规划等优化算法,利用Matlab平台完成仿真求解,并引入YALMIP等建模工具提升建模效率。文档提供了完整的代码实现方案与测试案例,涵盖故障集的生成与处理方法,帮助用户掌握鲁棒性和分布鲁棒优化的基本思想,适用于电力系统安全校核与调度决策支持。; 适合人群:电力系统及相关专业的研究生、从事电力调度、能源优化的科研人员及工程技术人员。; 使用场景及目标:① 掌握N-1安全准则在机组组合中的建模方法与实现流程;② 开展安全约束机组组合(SCUC)与安全约束经济调度(SCED)的仿真分析;③ 利用Matlab/YALMIP快速搭建电力系统优化模型并进行求解与验证。; 阅读建议:建议读者结合文档内容与网盘提供的完整资源(含代码与数据),动手实践建模与调试过程,重点关注约束条件的设定、故障场景的枚举与处理策略,同时参考相关文献深化对鲁棒优化与分布鲁棒方法的理解。

62,622

社区成员

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

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