小编Sup*_*tar的帖子

用Java创建Windows任务栏跳转列表

我知道以下事情,并想知道它们是否可以结合起来使Java在Windows中使用跳转列表:

  1. 当右键单击任务栏图标时,Windows会显示跳转列表以支持程序
  2. C++,C#,F#,VB和支持这本身(如所示在这里)
  3. Java可以导入使用JNA机功能(如图所示这里)

任何人都有经验可以帮助我创建Java应用程序的跳转列表吗?

J7Goodies库将无法工作,因为它不再存在.

java jump-list windows-7

5
推荐指数
1
解决办法
1784
查看次数

用Java制作3D迷宫

目标


我正在制作一个生成3D迷宫的程序,并且在创建算法时遇到了一些麻烦.为了便于互动,它将是一个矩形棱柱,有一个入口和一个出口.

算法


问题是算法的实际编码:我认为最好的方法是调用一个类MazeBlock,它有六个布尔状态(向上,向下,向左,向右,向内,向外),表示迷宫的方向可以去下一个.使用MazeBlocks 的3D数组,我想填充迷宫,每次迭代填充检查块在左侧,右侧,上方,下方,前方和后方,以查看是否有任何开口到哪一侧附上.

我已经有一个可以制作边缘,将随机开放的槽放在迷宫内部.所有我遇到的麻烦都是实际内部,确保迷宫有一个入口,一个出口和一个解决方案来穿越它(我曾经在弹出书中解决了一个"困难"的3D迷宫,只需要在预定的几步之后方向.


正如我所说,我认为我对算法有基本的想法,但我不知道如何编码.有人可以为此提出一个Java算法来相对快速地完成任务吗?

解决方案不得使用外部库.

java algorithm 3d maze creation

5
推荐指数
1
解决办法
3523
查看次数

HTML5语义Web元素 - 为什么我应该在内部应用程序中使用它们

为什么我应该在内部应用程序中使用HTML5语义Web元素?语义元素似乎有利于搜索引擎检测哪些元素特定于导航,文章等.如果我在仅基于客户端的HTML应用程序中使用这些元素,我将获得什么?

html5 semantics

5
推荐指数
1
解决办法
395
查看次数

我可以在不导航的情况下更改地址栏中的文字吗?

我已经为客户端创建了一个搜索页面,但在这种情况下,实际的搜索页面位于一个iframe用户面前,该用户会看到一个装饰外壳iframe,它将其URL参数传递给它iframe,然后解释它们并执行搜索.这是我无法改变的.它还向我提出了一个独特的问题,即如果用户键入搜索页面的搜索栏以执行其他搜索,iframe将刷新,但shell页面不会.这意味着URL现在不再与当前搜索相关.如何在不离开此shell页面的情况下更改地址栏中的URL?这个系统的重点iframe在于刷新的时间比整个页面少,所以刷新整个页面会适得其反.

完整解决方案


对于只想要代码片段的人来说,这是我对Ian解决方案的最终实现:

<?PHP
// ...
function buildTitleChanger($search) {
    ?>

    window.top.history.pushState({search : "<?PHP echo str_replace("\"", "\\\"", $search); ?>"}, document.title, window.location.search);
    window.top.document.title = document.title;<?PHP
}
// ...
?>
Run Code Online (Sandbox Code Playgroud)

这个内联PHP有点脏,但它在100%的时间都有效:3

html javascript iframe

5
推荐指数
1
解决办法
8239
查看次数

为什么 Google 不压缩他们的网络字体 CSS?

我正在研究谷歌的网络字体是如何工作的,发现当一个人放置类似的东西时

@include url('https://fonts.googleapis.com/css?family=Archivo+Narrow:400,400italic,700,700italic');
Run Code Online (Sandbox Code Playgroud)

在样式表中,CSS 解释器会获取给定 URL 中的内容:

/* latin-ext */
@font-face {
  font-family: 'Archivo Narrow';
  font-style: normal;
  font-weight: 400;
  src: local('Archivo Narrow Regular'), local('ArchivoNarrow-Regular'), url(https://fonts.gstatic.com/s/archivonarrow/v5/DsLzC9scoPnrGiwYYMQXpj3sPXe5Q4a3bCZMR7ryN4o.woff2) format('woff2');
  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo Narrow';
  font-style: normal;
  font-weight: 400;
  src: local('Archivo Narrow Regular'), local('ArchivoNarrow-Regular'), url(https://fonts.gstatic.com/s/archivonarrow/v5/DsLzC9scoPnrGiwYYMQXpkU-p1xzoRgkupcXIqgYFBc.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo Narrow';
  font-style: normal;
  font-weight: …
Run Code Online (Sandbox Code Playgroud)

css compression google-webfonts

5
推荐指数
1
解决办法
3517
查看次数

为什么 Swift 不允许在类 init 中给 self 赋值,但在协议 init 中却不允许?

我经常发现自己喜欢在structs、enums 和protocols 的初始化器中如何编写类似self = someValue. 当我有一些预定义值或克隆现有值时,这非常有用。

然而,这个语法对 es 不起作用class。我也实在想不通为什么。

无法赋值:“self”是不可变的

如果关注的是双重初始化,Swift 编译器知道我是否、何时以及在何处调用指定superself初始化器,因此它知道我是否已完成初始化该实例。如果担心的是我还没有调用指定的初始化程序,那么应该没问题,因为我只是让这个实例成为对另一个实例的引用(2 vars 1 指针)。如果担心的是并发访问可能导致self已经被初始化...那么这是无意义的,因为我们在初始化器中,而Swift 初始化器不易受此影响

毕竟我发现我可以通过一次性协议来解决这个问题:

class MyClass {
    let content: String
    
    init(content: String) {
        self.content = content
    }

    convenience init(from1 other: MyClass) {
        self = other // Cannot assign to value: 'self' is immutable
    }
}



protocol MyProto {}

extension MyClass: MyProto {}



extension MyProto {
    
    init(from2 other: Self) { …
Run Code Online (Sandbox Code Playgroud)

initialization initializer pass-by-reference pass-by-value swift

5
推荐指数
1
解决办法
688
查看次数

什么是 Foundation._GenericObjCError.NilError?

我正在从 Swift 调用一些旧的 Objective-C 代码,它经常会抛出这个错误,即使看起来没有出错:

do {
    try objCObject.someMethod()
}
catch {
    print(error)
    // Trying to handle the error here
}
Run Code Online (Sandbox Code Playgroud)

该方法的 Objective-C 签名如下所示:

- (BOOL) someMethodWithError: (NSError **) outError;
Run Code Online (Sandbox Code Playgroud)

在内部放置一个断点,catch我可以使用 LLDB 控制台看到这一点。

(lldb) po error
Foundation._GenericObjCError.nilError

(lldb) po error as NSError
Error Domain=Foundation._GenericObjCError Code=0 "(null)"
Run Code Online (Sandbox Code Playgroud)

这里发生了什么,我该如何处理?当我尝试在 Swift 中为此编写一个特殊案例时,我得到了这个:

/Path/To/My Code.swift:200:27: error: module 'Foundation' has no member named '_GenericObjCError'
                    catch Foundation._GenericObjCError.nilError {
                          ^~~~~~~~~~ ~~~~~~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)

runtime-error objective-c swift

5
推荐指数
1
解决办法
2128
查看次数

ZSH 的 time 命令是否带有像 -p 这样的参数?

我最近安装了 macOS 10.15 Catalina 的开发者测试版,它默认使用 ZSH 而不是 BASH。

我已time作为二进制文件安装在 中/usr/bin/time,并使用它来计时我的一些脚本。然而,ZSH 将此作为内置命令。我的问题是我通常用time -p我喜欢的方式格式化其输出,但这在 ZSH 上似乎不可能。

根据man time

     -p      The output is formatted as specified by IEEE Std 1003.2-1992 (``POSIX.2'').
Run Code Online (Sandbox Code Playgroud)

这似乎不适用于 ZSH 的内置,并且 ZSH 似乎没有使用我安装的time二进制文件:

巴什

     -p      The output is formatted as specified by IEEE Std 1003.2-1992 (``POSIX.2'').
Run Code Online (Sandbox Code Playgroud)

中兴

is-mbp-bleggiero% which time
time: shell reserved word
is-mbp-bleggiero% time echo hello; echo $?
hello
0
is-mbp-bleggiero% time -p echo hello; echo $? …
Run Code Online (Sandbox Code Playgroud)

performance zsh timing

5
推荐指数
1
解决办法
2017
查看次数

在 AppKit 中为 macOS SwiftUI 应用程序设置主窗口标题?

我有一个简单的 WKWebView 应用程序,它在 macOS 上打开一个网站,在 AppKit 中使用 SwiftUI。但是,应用程序窗口没有标题 - 我说的是顶行(用红色 X 关闭它,等等。

我如何在那里设置标题?我试过查看 Main.Storyboard 但没有看到任何类似于“标题段”的内容。

macos xcode appkit wkwebview swiftui

5
推荐指数
2
解决办法
3330
查看次数

我的brainfuck解析器代码有什么问题?

我正在尝试用Java编写一个可以读取,编译和运行brainfuck源文件的程序(.bf).我已经让它与维基百科的Hello World示例一起工作得很好,但它打破了ROT13的例子(声称]它在实际匹配时达到了无与伦比的效果).

实际的解析器代码都写在一个.JAVA文件中,但它的核心(实际的brainfuck解析器和运行代码)在下面的方法中,doNow(char).以下是变量的含义:cells是要运行的字符数组(char[]); pointer是指向array(short)中的地址的Java变通方法; PC是程序计数器(int),并且loopStack是对应于[s(基本上是a short[])的地址堆栈.这些不是问题,因为它们在Hello World测试中工作得很好.采取输入的方法自动过滤掉多余的字符,我确认它可以从调试检查中完美地工作.

为什么这个解析器不运行ROT 13代码?


我的解析器,用Java编写

  /** The array of data */
  private byte[] cells = new byte[Short.MAX_VALUE];
  /** The pointer that is manipulated by the user or program */
  private short pointer = 0;
  /** The program counter, to run compiled programs */
  private int PC = 0;
  /** …
Run Code Online (Sandbox Code Playgroud)

java parsing esoteric-languages brainfuck

4
推荐指数
1
解决办法
444
查看次数