Pet*_*ton 12 java user-interface swing dialog awt
我正在创建一个Java应用程序,它将进行一些处理,然后需要显示一条消息以向用户提供反馈.
然而,它似乎非常缓慢 - 需要两秒钟才能返回.
我把源代码剥离到明显的罪魁祸首,这里是使用的代码:
package SwingPlay;
import javax.swing.JFrame;
public class Dialog
{
public static void main( String[] args )
{
JFrame frame = new JFrame( "DialogDemo" );
}
}
Run Code Online (Sandbox Code Playgroud)
我正在从命令行执行此操作:
java -classpath . SwingPlay.Dialog
Run Code Online (Sandbox Code Playgroud)
正如你所看到的 - 我什么也没做,只是创建了一个JFrame,甚至没有显示它.
如果它是相关的,这是我的java -version
输出:
java version "1.6.0_11"
Java(TM) SE Runtime Environment (build 1.6.0_11-b03)
Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)
这是(目前)针对Win XP SP2运行.
所以,第一个问题:为什么这么慢?
更重要的是,我只想要一个简单的消息(GUI,而不是cmdline)毫不拖延地显示 - 任何人都可以提供一些代码来执行此操作吗?
更新:
一些背景可能会有所帮助:
我正在创建一个具有许多"头"的应用程序(即不同的用户界面都使用相同的核心类来完成复杂的部分).
我目前有一个纯粹的命令行头,工作正常 - 直接响应.
我还将有一个带有常规点击式GUI的标准应用程序,并且不会预见到这个问题.
我目前正在研究的是这两者的混合 - 它将从运行框(或类似的启动器)启动,可能带有参数,并且只需要有效地响应状态消息,可以通过按键.
后一个是问题集中的地方.
虽然我并不反对将现有的命令行版本与shell脚本一起使用(虽然不认为这是必要的!),现有的答案似乎表明事情对我来说并不像对别人那样快 - 一个例如,对我来说需要1460毫秒,而70毫秒 - 这是一个显着的差异.
Osc*_*Ryz 11
延迟它的原因是因为Java是一种解释型语言并且需要时间来启动一个新的JVM(解释器)
实际上创建帧只需不到几毫秒(我的机器约70毫秒).
如果要在Java应用程序中使用它,则无需担心它.它几乎是瞬间的(你应该使用JDialog或JOptionPane)
如果这不是在Java应用程序中使用,并且2秒太多(我认为它太多)你应该考虑另一个工具.
以下是我在代码中测量时间的方法:
import javax.swing.JFrame;
public class Dialog {
public static void main( String[] args ) {
long start = System.currentTimeMillis();
JFrame frame = new JFrame( "DialogDemo" );
System.out.println( "Took: " + ( System.currentTimeMillis() - start ) );
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11254 次 |
最近记录: |