问题列表 - 第24286页

Java的Swing Threading

我的理解是,如果我启动另一个线程来执行某些操作,我需要SwingUtilities.invokeAndWaitSwingUtilities.invokeLater在我所说的线程中更新GUI.如果我错了,请纠正我.

我想要完成的是相对简单的:当用户点击提交时,我想(在执行任何操作之前)禁用提交按钮,执行操作,并在操作结束时重新启用按钮.我的执行操作的方法在返回结果时直接更新GUI(显示结果).

此操作基本上查询服务器并返回一些结果.

到目前为止我所拥有的是:

boolean isRunning = false;

synchronized handleButtonClick() {
  if ( isRunning == false ) {
    button.setEnabled( false );
    isRunning = true;
    doAction();
  }
}

doAction() {
  new Thread() {
    try {
      performAction(); // Concern A
    } catch ( ... ) {
      displayStackTrace( ... ); // Concern B
    } finally {
      SwingUtilities.invokeLater ( /* simple Runnable to enable button */ );
      isRunning = false;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

对于我上面的两个问题,我是否必须使用,SwingUtilities.invokeAndWait因为它们都会更新GUI?所有GUI更新都围绕更新JTextPane.我是否需要在我的线程中检查我是否在EDT上,如果是,我可以调用我的代码(无论是否更新GUI)并且不使用SwingUtilities.invokeAndWait? …

java swing multithreading

13
推荐指数
2
解决办法
7388
查看次数

我如何调用超类方法

我有两节课A,和B.类B重写了类的foo方法A.Class B有一个bar方法,我想调用foo超类的方法.这种电话的语法是什么?

class A    
 def foo
   "hello"
 end    
end


class B < A
 def foo
  super + " world"
 end

 def bar
   # how to call the `foo` method of the super class?
   # something similar to
   super.foo
 end
end
Run Code Online (Sandbox Code Playgroud)

对于类方法,我可以通过显式地为类名添加前缀来在继承链上调用方法.我想知道是否有类似的习惯用法.

class P
 def self.x
   "x"
 end
end

class Q < P
 def self.x
   super + " x"
 end

 def self.y
   P.x
 end
end
Run Code Online (Sandbox Code Playgroud)

编辑 …

ruby

30
推荐指数
4
解决办法
4万
查看次数

通过命令行添加启动项(mac)

如何在mac上通过命令行添加启动项?从谷歌搜索,我知道你必须编辑~/Library/Preferences/com.apple.loginitems.plist使用, defaults write com.apple.loginitems [key] [value]但我不确定要编辑的确切内容.

macos command-line startup

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

Mercurial扩展无法在Windows 7 x64中运行?

我们正在试驾Mercurial.我们不希望每次与存储库交互时都输入我们的用户/传递,因此我们设置了mercurial_keyring扩展.我们:

  • 安装Python 2.6.5(32或64位,具体取决于系统)
  • 已安装的setuptools(适用于easy_install.exe)
  • easy_install密钥环
  • easy_install mercurial_keyring

然后在该[auth]部分对%userprofile%/ mercurial.ini进行了适当的更改.它在我的同事的计算机(32位xp sp3)上工作正常,但它在我的机器上不起作用(Windows 7 Ultimate x64).另外值得注意的是,必须在Win 7 x64上从源代码构建setuptools(python setup.py bdist_wininst然后运行生成的setuptools-0.6c11.win-amd64.exe).

仅使用Mercurial 1.5二进制安装(.msi)中的hg.exe,运行hg.exe时出现此错误:

***无法导入扩展名mercurial_keyring:没有名为mercurial_keyring的模块

我试图改变我的mercurial.ini,指定mercurial_keyring.py文件的路径,而不是让mercurial找到它(因为它在PYTHONPATH中).

旧:

[extensions]
mercurial_keyring =
Run Code Online (Sandbox Code Playgroud)

新:

[extensions] mercurial_keyring =
c:/mercurial/extensions/mercurial_keyring.py
Run Code Online (Sandbox Code Playgroud)

错误更改为:

abort:无法导入模块密钥环!

因此,在提供mercurial_keyring扩展的路径时,仍然无法找到依赖密钥环模块.

经过进一步调查,似乎NO扩展工作.他们都产生错误:

***无法导入扩展名[扩展名]:没有名为[模块名称]的模块

看来,当运行hg.exe时,它不知道PYTHONPATH.我试过了:

  • Python 2.6.5 32位
  • Python 2.6.5 64位
  • 使用MinGW从源代码构建Mercurial 1.5
  • 使用MSVC9从源代码构建Mercurial 1.5
  • 使用1.5二进制dist(.msi)中的hg.exe
  • 从源代码构建时,在c:\ python26\scripts中使用hg.py
  • %userprofile%/ mercurial.ini中的各种配置
  • 使用setuptools(easy_install.exe)安装密钥环和mercurial_keyring
  • 从源代码构建密钥环和mercurial_keyring(python setup.py bdist_wininst)

什么都行不通.我最接近的是从源代码构建时使用hg.py. 它至少不会给我错误,并且当我输入我的凭据时实际创建%userprofile%/ wincrypto_pass.cfg.但是在后续请求中,它不会自动输入凭据.它再次提示我.

有趣的是,TortoiseHG 正在使用密钥环.我无法让它在命令行上运行.我认为Win 7 x64正在发生一些阻止mercurial(hg.exe)看到PYTHONPATH的事情,因此无法找到任何已安装的模块.

有没有人在Win 7 x64上有扩展功能?具体用二进制安装mercurial(不是hg.py)?

更新 我现在找到了合适的工作.由于TortoiseHG 不会与mercurial_keyring工作,我只是改变了我的PATH设置为包括tortoiseHG文件夹,而不是C:\善变.现在当我在命令行输入"hg"时,它正在使用tortoiseHG文件夹中的hg.exe,它可以正常工作.同样,这仍然是Win 7 x64上的mercurial扩展的问题.答案欢迎.

mercurial tortoisehg windows-7 windows-7-x64

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

在事务内打开和关闭数据库连接

我设计了框架的数据访问部分,以便每次业务对象(BO)需要与数据库交互时,都必须打开连接,调用数据访问层(执行查询),然后关闭连接.然后,如果需要在事务中运行,它将打开连接,开始事务,调用数据访问层(执行查询),然后提交事务,关闭事务,最后关闭连接.

我这样做的方式是"开放晚,早关闭" ...但是如果我需要调用其他BO在单个交易中提交数据怎么办?有没有更好的方法来处理打开和关闭连接以及处理事务?

我是设计应用程序架构的新手,所以我希望我不会错误地做这个......任何帮助都是值得赞赏的.

.net connection ado.net transactions

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

svn:changeset = revision?

我想知道这些话是否是彼此的同义词?

svn

18
推荐指数
2
解决办法
7371
查看次数

在 cygwin 上运行“git svn init”时出现错误 127

我试图在 cygwin 下使用 git-svn 将本地 SVN 存储库转换为 git,但失败了。发生的情况是这样的:

$ git svn init -t tags -b branches -T trunk  file:///cygdrive/e/repository/project
init: command returned error: 127
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

cygwin git-svn

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

如何在iPhone上测试Xcode Project?

我在Xcode中开发了一个基于视图的项目.它在iPhone模拟器中成功运行.但我想在真正的iPhone设备上测试这个项目来检查应用程序的行为.有没有办法在不购买Apple Developer's License的情况下在iPhone设备上测试我的应用程序?提前致谢.

iphone xcode cocoa-touch simulator

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

编程模式可以压缩嵌套的ajax回调?

我继承了JavaScript代码,其中Ajax处理程序的成功回调启动另一个Ajax调用,其中成功回调可能会也可能不会启动另一个Ajax调用.这导致了深层嵌套的匿名函数.也许有一个聪明的编程模式,避免深度嵌套,更干.此外,还存在整个函数中使用的内部变量myVar1和myVar2的问题.

jQuery.extend(Application.Model.prototype, {
    process: function() {
        var myVar1;
        // processing using myVar1;
        jQuery.ajax({
            url:myurl1,
            dataType:'json',
            success:function(data) {
                var myVar2;
                // process data using myVar1, set state of myVar2,
                // then send it back
                jQuery.ajax({
                    url:myurl2,
                    dataType:'json',
                    success:function(data) {
                        // do stuff with myVar1 and myVar2
                        if(!data.ok) {
                            jQuery.ajax({
                                url:myurl2,
                                dataType:'json',
                                success:mycallback
                            });
                        }
                        else {
                            mycallback(data);
                            }

                    }
                });
            }
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery callback

6
推荐指数
2
解决办法
2435
查看次数

我的Android"Hello World"应用程序没有说"你好"

我创建了一个Hello World应用程序,系统生成了下面的大部分Android语言.在没有System.out语句的情况下运行应用程序时,模拟器中没有显示"Hello".然后,使用Eclipse教程,我读到我可以将System.out.println语句添加到main.应用程序再次运行,但没有输出.

我在这里不理解什么?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    System.out.println =" Hello world!" 
    />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

android

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