Java在Swing中如何实现弹出一个对话框的效果?

//要求如下/**如何在程序中UserFrame构造方法中第一行弹出一个类似的对话框,*其中有两个输入框,分别输入用户名和密码,可以返回两个String*而不采用如下sp... //要求如下
/*
*如何在程序中UserFrame构造方法中第一行弹出一个类似的对话框,
*其中有两个输入框,分别输入用户名和密码,可以返回两个String
*而不采用如下split方法来分别验证用户名和密码?
*我曾试图自己写一个对话框,但是程序在弹出对话框后没有暂停执行等待输入,
*而是,即使不输入正确的用户名和密码,也会弹出UserFrame,代码如下:
*/
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class UserFrame extends JFrame {
public UserFrame() {
// 即以下此行中是否有现成写好的类可以显示一个对话框,有两个输入框
String str = JOptionPane.showInputDialog(this, new String[] {
"Please input username", "password" }, "login",
DO_NOTHING_ON_CLOSE);
String username = null;
String password = null;
try {
if (str == null || "".equals(str.trim())) {
System.out.println("no input");
System.exit(0);
}
String[] info = str.split(",");
username = info[0];
password = info[1];
} catch (Exception e) {
System.exit(0);
}
if (username.equals("scott") && password.equals("tiger")) {
this.setContentPane(getContent());
this.setBounds(250, 100, 600, 480);
this.setTitle("UI");
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} else {
System.exit(0);
}
}

public JPanel getContent() {
JPanel panel = new JPanel();
JButton button = new JButton("doSomething");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("doSomething");
}
});
panel.add(button);
return panel;
}

public final static void main(String[] args) {
UserFrame uf = new UserFrame();
uf.setVisible(true);
}

}
如何写?
展开
 我来答
kingkongzmc
推荐于2018-02-23 · TA获得超过884个赞
知道小有建树答主
回答量:913
采纳率:77%
帮助的人:291万
展开全部

可以使用JoptionPane:

有几种提示框:

第一种:

JOptionPane.showMessageDialog(jPanel, "提示消息", "标题",JOptionPane.WARNING_MESSAGE);  

第二种:

int n = JOptionPane.showConfirmDialog(null, "你高兴吗?", "标题",JOptionPane.YES_NO_OPTION);//返回的是按钮的index  i=0或者1  

第三种:

Object[] obj2 ={ "足球", "篮球", "乒乓球" };  

String s = (String) JOptionPane.showInputDialog(null,"请选择你的爱好:\n", "爱好", JOptionPane.PLAIN_MESSAGE, new ImageIcon("icon.png"), obj2, "足球");  

wujiazhao1988
2009-02-28 · TA获得超过413个赞
知道小有建树答主
回答量:397
采纳率:0%
帮助的人:304万
展开全部
简单啊,你先不要让UserFrame的visible值设为true,就先弹出对话框,等对话框执行完再验证,如果验证通过就setVisible(true),否则直接exit就行了..具体自己实现吧,可以的..也不难...
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-03-01
展开全部
用Dialog类,,具体大小,模式设置下,看下API就行,不用别人帮你写的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无聊浪人008
2009-02-28 · TA获得超过264个赞
知道小有建树答主
回答量:834
采纳率:0%
帮助的人:566万
展开全部
可以自己写一个这样的输入框,,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式