我的 Java GUI 库正在 windows 而不是 Linux
My Java GUI Library working on windows not on Linux
我制作了一个 Java 库来显示 Android 类似名为 JSubs 的 Toast 消息:GitHub
它在我的 Windows 10 电脑上工作得很好。
但是每当我在 Linux(Kali Linux) 上尝试时,系统崩溃并且消息无法正确显示。
我的Driver代码:
import com.jaysmito.jsubs.JSubsConstants;
import com.jaysmito.jsubs.SubsFrame;
import com.jaysmito.jsubs.Toast;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception{
Toast.showToast("Hello World!");
}
}
我对 Linux 经验不多。
我怎样才能让它也可以用 Linux 计算?
访问“实例”的未初始化值(可能是因为线程)存在问题,其中“this”更合适,因为可以保证设置它。例如 SubsFrame
构造函数调用 handleFrameSize()
而 handleFrameSize 使用“instance” -> NullPointerException.
Exception in thread "Thread-0" java.lang.NullPointerException: Cannot read field "label" because "com.jaysmito.jsubs.SubsFrame.instance" is null
Swing UI 更改不应 运行 在不同的线程中。在主调用线程(第一次设置)或稍后在事件调度线程中执行所有 Swing UI 操作。这会影响您的 new Thread(new Runnable ...)
调用中的所有操作,使用 SwingUtilities.invokeLater(runnable);
来更改那些后台线程中的 UI 的位。
我可以 运行 你的应用在 Linux 上面修复并注释掉后:
// if(!this.isAlwaysOnTopSupported()){
// throw new Exception("Always on top is not supported!");
// }
我制作了一个 Java 库来显示 Android 类似名为 JSubs 的 Toast 消息:GitHub
它在我的 Windows 10 电脑上工作得很好。
但是每当我在 Linux(Kali Linux) 上尝试时,系统崩溃并且消息无法正确显示。
我的Driver代码:
import com.jaysmito.jsubs.JSubsConstants;
import com.jaysmito.jsubs.SubsFrame;
import com.jaysmito.jsubs.Toast;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception{
Toast.showToast("Hello World!");
}
}
我对 Linux 经验不多。
我怎样才能让它也可以用 Linux 计算?
访问“实例”的未初始化值(可能是因为线程)存在问题,其中“this”更合适,因为可以保证设置它。例如 SubsFrame
构造函数调用 handleFrameSize()
而 handleFrameSize 使用“instance” -> NullPointerException.
Exception in thread "Thread-0" java.lang.NullPointerException: Cannot read field "label" because "com.jaysmito.jsubs.SubsFrame.instance" is null
Swing UI 更改不应 运行 在不同的线程中。在主调用线程(第一次设置)或稍后在事件调度线程中执行所有 Swing UI 操作。这会影响您的 new Thread(new Runnable ...)
调用中的所有操作,使用 SwingUtilities.invokeLater(runnable);
来更改那些后台线程中的 UI 的位。
我可以 运行 你的应用在 Linux 上面修复并注释掉后:
// if(!this.isAlwaysOnTopSupported()){
// throw new Exception("Always on top is not supported!");
// }