java swing Jpanel 怎么添加一个Jdialog弹出框 20

 我来答
雪飞潇潇
2017-09-27 · TA获得超过6273个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:843万
展开全部

通过: 弹出框, 顾名思义就是刚开始看不见, 触发某个事件后弹出的一个框

所以 我们要让JPanel响应指定的事件然后弹出 . 比如常见的事件, 鼠标点击JPanel后弹出

弹出框. 一般有两种方法实现

  1. 方法一:JOptionPane 创建1个简单的弹出框.(代码量少, 效果简单)

  2. 方法二Dialog/JDialog 创建1个弹出框.(代码量长,可以实现复杂的效果)

效果图

参考代码

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class Demo extends JFrame {
JPanel jp;
static final String title = "Message";
static final String content = "Eggs aren't supposed to be green.";
public Demo() {
jp = new JPanel();
jp.setBackground(Color.PINK);
jp.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
//方法1
JOptionPane.showMessageDialog(null, content, title, JOptionPane.INFORMATION_MESSAGE);
//方法2
new MyDailog(title, content).setVisible(true);// 创建1个对话框,并且设置为可见
}
});
add(jp);
setTitle("测试Demo");// 标题
setSize(280, 280);// 窗口大小
setLocationRelativeTo(null);// 窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗口点击关闭时,退出程序
setVisible(true);// 窗口可见
}

public static void main(String[] args) {
new Demo();
}

}

// 对话框类
class MyDailog extends JDialog implements ActionListener {
String title;
String content;

public MyDailog(String title, String content) {
this.title = title;
this.content = content;
ImageIcon icon = new ImageIcon("tp.png");// 创建1个图标实例
JLabel jlImg = new JLabel(icon);// 1个图片标签,显示图片
JLabel jl = new JLabel(content);// 1个文字标签,显示文本
jl.setForeground(Color.BLUE);// 设置文字的颜色为蓝色
JButton jb = new JButton("确定");// 创建1个按钮
jb.addActionListener(this);// 给按钮添加响应事件
add(jlImg);// 向对话框加入图片标签
add(jl);// 向对话框加入文字标签
add(jb);// 向对话框添加按钮
setLayout(new FlowLayout());// 对话框流式布局
setIconImage(icon.getImage());// 窗口左上角的小图标
setTitle(title);// 设置标题
setModal(true);// 设置为模态窗口
setSize(275, 135);// 设置对话框大小
setLocationRelativeTo(null);// 对话框局域屏幕中央
setResizable(false);// 对话框不可缩放
setDefaultCloseOperation(DISPOSE_ON_CLOSE);// 当对话框窗口的关闭按钮[X]被点击时,销毁对话框
}

// 当确定按钮被点击时会执行下面的方法
@Override
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("确定")) {// 判断是不是确定按钮被点击
this.setVisible(false);// 对话框不可见
this.dispose();// 对话框销毁
}
}
}
心鏾
2017-09-03
知道答主
回答量:39
采纳率:33%
帮助的人:4.1万
展开全部
JOptionPane.showMessageDialog(this, "恭喜胜利通关");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式