Java实现弹窗JOptionPane类使用

项目中现有一个接口直接操作修改redis的一个值,由于是方便运维操作直接给的get接口,url中直接传递参数值,现在提出直接get接口操作就修改风险较大,需要给出一个提示框再次确认。

实现方式

int op=JOptionPane.showConfirmDialog(null, "是否确认修改系统启动时间为"+time, "提示", JOptionPane.OK_CANCEL_OPTION);
if(op==JOptionPane.OK_OPTION){
    redisUtils.set(CommonConstants.REDIS_SYSTEM_RUN_TIME, time, RedisUtils.NOT_EXPIRE);
    return Ret.ok("修改成功");
}else if(op==JOptionPane.CANCEL_OPTION){
    return Ret.ok("取消");
}

问题及解决

  • 遇到的问题
    导入JOptionPane后运行项目报错 java.awt.HeadlessException: null

  • 解决方法
    1.点击编辑配置,在虚拟机选项框中添加:-Djava.awt.headless=false
    在这里插入图片描述

2.方法一在打jar包的时候仍然会报错,maven打包时默认这个配置不会添加,可以在启动类中修改

@SpringBootApplication(scanBasePackages = "cn.nr")
@EnableScheduling
public class CoreApplication {
    public static void main(String[] args) {
        SpringApplicationBuilder builder = new SpringApplicationBuilder(CoreApplication.class);
        builder.headless(false).run(args);
    }
}

3.修改maven打包配置
maven打包配置修改解决报错java.awt.headless

标题页面显示友好优化

  • 字体样式
    原弹框很小,且提示内容字体也很小,改变字体后弹框大小也会相应改变,对饮修改代码如下
//字体样式
Font font = new Font("黑体",0,24);
UIManager.put("OptionPane.font", font);
UIManager.put("OptionPane.messageFont", font);
UIManager.put("OptionPane.buttonFont", font);

int op=JOptionPane.showConfirmDialog(null, "是否确认修改系统启动时间为" + time + "\r\n\r\n\r\n", "提示", JOptionPane.OK_CANCEL_OPTION);
if(op==JOptionPane.OK_OPTION){
    redisUtils.set(CommonConstants.REDIS_SYSTEM_RUN_TIME, time, RedisUtils.NOT_EXPIRE);
    return Ret.ok("修改成功");
}
return Ret.ok("取消修改");
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值