小编Har*_*ton的帖子

在最后一个窗口上调用 dispose 后 java swing 程序未关闭

前言:这是我做的第一个真正的挥杆程序。

我有一个摇摆程序,其中一个 JButton 应该退出程序。该按钮触发 this.dispose();。当我单击此 JButton 时,它确实使窗口完全消失,但查看调试器,程序本身仍在运行。

我的主要方法只包括:

public static void main (String[] args)
{
  java.awt.EventQueue.invokeLater(new Runnable()
  {
    public void run()
    {
      new StartupGui().setVisible(true);
    }
  });
}
Run Code Online (Sandbox Code Playgroud)

我的退出按钮看起来像操作按钮:

private void exitButtonActionPerformed(java.awt.event.ActionEvent evt)
{
  this.dispose();
}
Run Code Online (Sandbox Code Playgroud)

我也试过这个退出按钮:

private void exitButtonActionPerformed(java.awt.event.ActionEvent evt)
{
  java.awt.EventQueue.invokeLater(new Runnable()
  {
    public void run()
    {
      dispose();
    }
  });
}
Run Code Online (Sandbox Code Playgroud)

按下退出按钮后查看调试器,我看到以下内容(仅以下内容):

Daemon Thread [AWT-XAWT] (running)
Thread [AWT-Shutdown] (running)
Thread [AWT-EventQueue-0] (running)
Thread [DestroyJavaVM] (running)
Run Code Online (Sandbox Code Playgroud)

任何人都可以指出我为什么在此之后程序没有关闭的正确方向?我已经做了一些谷歌搜索,但到目前为止还没有到任何地方。如果您需要更多信息,请告诉我

谢谢 :)

java swing dispose shutdown

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

为什么以下3个程序的输出是这样的?

#include<stdio.h>
int add(int,int);
int main()
{
  int p=add(10,20);
  printf("%d",p);
  return 0;
}

int add(int x, int y)
{
  int sum=x+y;
}

O/P: 30
Run Code Online (Sandbox Code Playgroud)
#include<stdio.h>
int add(int,int);
int main()
{
  int p=add(10,20);
  printf("%d",p);
  return 0;
}
int add(int x, int y)
{
  int sum=x+y;
  printf("Hello");
}

O/P: 5
Run Code Online (Sandbox Code Playgroud)
#include<stdio.h>
int add(int,int);
int main()
{
  int p=add(10,20);
  printf("%d",p);
  return 0;
}
int add(int x, int y)
{
  int sum=x+y;
  sum++;
}

O/P: 30
Run Code Online (Sandbox Code Playgroud)

c

1
推荐指数
2
解决办法
172
查看次数

Android如何关闭意图?

我已经创建了一个意图使用

browserIntent   =new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl));
Run Code Online (Sandbox Code Playgroud)

我怎么关闭它?是吗

browserIntent.close 
Run Code Online (Sandbox Code Playgroud)

或某事......也许吧

browserIntent.finish();  ?
Run Code Online (Sandbox Code Playgroud)

android android-intent

1
推荐指数
3
解决办法
7065
查看次数

将文本文件的内容读入环境变量

其实我想将txt文件的内容传递给if条件

我正在尝试以下方面

set /p var = < file name 
if not %var% == “string” goto x else goto y
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

当我检查var的值时,它显示的变量没有被定义

Set %var%
Run Code Online (Sandbox Code Playgroud)

环境变量%var%未定义

windows cmd batch-file

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

在WPF中关闭窗口(当不在该窗口中时)

我有一个应用程序,它以一个简单的开始屏幕开始,允许用户选择New或Open a project.选择"新建"时,我显示一个新窗口,该窗口是一个向导,用于收集要传递到主窗口的数据.

我为主窗口创建了一个新窗口并显示它.然后我很容易关闭向导this.close(); 但是如何关闭初始窗口,即启动URI窗口?

wpf window

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

从linux桌面执行python脚本

我创建了一个简单的python脚本,因此有一个.py文件。我可以从终端运行它,但是如果我双击它,只会在gedit中打开。我在其他地方也读过这个问题,并尝试过解决方案,但是没有一个起作用。我正在运行Ubuntu 13.04,已选择使文件可执行的框。我什至在另一台计算机上安装了Ubuntu 13.10的新实例,它执行相同的操作。我在这里可能会缺少什么?

python ubuntu

1
推荐指数
2
解决办法
1万
查看次数

SetEvent ResetEvent WaitForMultipleObjectsEx - 竞争条件?

我无法理解PulseEvent或竞争条件。但为了避免它,我试图SetEvent改为,并且ResetEvent每次之前WaitForMultipleObjectsEx.

这是我的流程:

  • 线程一 - 用于CreateEvent创建自动重置事件,然后我生成并告诉线程二。
  • 线程一 - 告诉线程二运行。
    • 线程二将执行ResetEvent事件,然后立即开始WaitForMultipleObjectsEx事件和其他一些用于文件监视的内容。如果WaitForMultipleObjectsEx返回,并且不是由于事件,则立即重新启动循环。如果WaitForMultipleObjectsEx返回,由于事件将发出信号,则不要重新启动循环。

所以现在请想象一下这种情况:

  • 线程二 - 循环正在运行
  • 线程一 - 需要添加一个路径,所以它做 (1) SetEvent,然后 (2) 向线程 2 发送另一条消息以添加路径,然后 (3) 向线程 2 发送消息以重新启动循环。
    • 除非我在 TWO 中停止循环,否则 add path 和 restart loop 的消息不会进入线程 TWO,这是由SetEvent. 线程 2 将看到它因事件而停止,因此它不会重新启动循环。所以它现在会收到添加路径的消息,所以它会添加路径,然后重新启动循环。
  • 线程一 - 需要停止线程,因此它执行(1)SetEvent然后(2)等待消息线程 2,当它收到该消息时,它将终止线程。

这会避免竞争条件吗?

谢谢

winapi multithreading

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

如何在Inno Setup中打开新窗口的情况下运行CMD命令

我正在使用Inno安装程序安装程序来设置安装程序文件,该文件可以调用我刚刚通过其脚本安装的.exe,并在安装后立即使用以下命令启动它:

[Run]
Filename: "{cmd}"; Description: "{cm:LaunchProgram,3mtxmail}"; \
    Flags: nowait postinstall skipifsilent runascurrentuser; \
    Parameters: "/b /k "" ""{app}\my.exe"" -c ""{app}\default.conf"" "" "
Run Code Online (Sandbox Code Playgroud)

在my.exe运行时,它不需要任何接口,只应侦听特定端口上的任何流量,并将该流量信息写入日志文件.

但是,当我执行安装程序并启动程序时,它仍会显示一个新的控制台窗口,我认为/b应该阻止它.我希望不要看到这个新的控制台窗口,实际上屏幕上看不到任何内容.

从https://technet.microsoft.com/en-us/library/bb491005.aspx,/b应该是指示不打开命令的新窗口的标志.

什么是正确的语法?

windows cmd inno-setup windows-console

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

0
推荐指数
1
解决办法
110
查看次数

将图像转换为字节数组?

将图像转换为字节数组的需要/目的是什么?

为什么我们需要这样做?

bytearray image-processing

0
推荐指数
1
解决办法
1028
查看次数