热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

IntelliJIDEA多屏后窗口不显示问题解决方案

这篇文章主要介绍了IntelliJIDEA多屏后窗口不显示问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

IDEA 在接入外接屏且扩展的情况下,如果突然拔掉外接屏,就可能会产生IDEA 整个窗口只在屏幕的右侧显示一点点边框且无法拖拽到当前屏幕的情况。

在不再次接入外接屏的情况下,想要把IDEA窗口拖拽回当前屏幕,可以找到项目中.idea 文件夹下的workspace.xml 文件
全文搜索ProjectFrameBounds 关键字,修改x和y的值为0或者直接将name="x",name="y"的这两行删除即可,然后重启IDEA即可

因为经常遇到这种情况,所以自己写了个java 小工具,一键删除 name="x",name="y" 这两行记录,同时生成一个原始文件的.bak 文件,入参只需要文件路径

其中的核心代码逻辑示例如下:

(标签: 使用Java 实现删除某个文件中 包含特定字符的行)

import java.io.*;

/**
 * @author jiashubing
 * @since 2019/5/22
 */
public class DeleteLine {
  public static void main(String[] args) {
    String path = "C:\\Users\\jiashubing\\Desktop\\ttt\\workspace.xml";
    deleteLine(path);
  }

  private static String deleteLine(String path) {
    int a = path.lastIndexOf('/');
    int b = path.lastIndexOf('\\');
    if (a <0 && b <0) {
      return "没有目录分隔符";
    }

    //删除原来的备份文件
    String bakpath = path + ".bak";
    if (deleteFile(bakpath)) {
      return "删除原始的备份文件失败,备份文件为:" + bakpath;
    }

    String bakpath2 = path + ".bak2";
    if (deleteFile(bakpath2)) {
      return "删除原始的临时备份文件失败,备份文件为:" + bakpath2;
    }

    //创建临时备份文件
    File bakFile2 = new File(bakpath2);
    boolean nFlag = false;
    try {
      nFlag = bakFile2.createNewFile();
    } catch (IOException e) {
      return "创建临时备份文件失败,备份文件为:" + bakpath2 + " 错误信息为:" + e.getMessage();
    }
    if (!nFlag) {
      return "创建临时备份文件失败,备份文件为:" + bakpath2;
    }

    String ans = getAns(path);
    if (ans == null) {
      return "读取并修改原始文件失败";
    }

    if (!addNewFile(bakpath2, ans)) {
      return "将修改后的内容写入到新文件失败";
    }

    File oldFile = new File(path);
    boolean mvFlag = oldFile.renameTo(new File(bakpath));
    if (!mvFlag) {
      return "将原始文件重命名成备份文件失败";
    }

    boolean mvFlag2 = bakFile2.renameTo(new File(path));
    if (!mvFlag2) {
      return "将临时备份文件重命名成原始文件失败";
    }

    return "执行成功";
  }

  private static boolean deleteFile(String bakpath) {
    File bakFile = new File(bakpath);
    if (bakFile.exists() && bakFile.isFile()) {
      boolean delFlag = bakFile.delete();
      if (!delFlag) {
        return true;
      }
    }
    return false;
  }

  private static String getAns(String path) {
    File oldFile = new File(path);
    if (!oldFile.exists() || !oldFile.isFile()) {
      return null;
    }

    StringBuilder ans = new StringBuilder();
    String encoding = "UTF-8";
    try (InputStreamReader read = new InputStreamReader(
        new FileInputStream(oldFile), encoding);
       BufferedReader bufferedReader = new BufferedReader(read)) {
      String lineTxt = null;
      while ((lineTxt = bufferedReader.readLine()) != null) {
        if (lineTxt.contains("name=\"x\"") || lineTxt.contains("name=\"y\"")) {
          continue;
        }
        ans.append(lineTxt + "\n");
      }
    } catch (Exception e) {
      return null;
    }

    return ans.toString();
  }

  private static boolean addNewFile(String path, String ans) {
    File file = new File(path);

    try (Writer out = new FileWriter(file)) {
      out.write(ans);
    } catch (IOException e) {
      return false;
    }

    return true;
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 本文介绍了在使用MSXML解析XML文件时出现DTD禁用问题的解决方案。通过代码示例和错误信息获取方法,解释了默认情况下DTD是禁用的,以及如何启用DTD的方法。此外,还提到了网上关于该问题的信息相对较少,因此本文提供了解决方案以供参考。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
author-avatar
小景森的童年
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有