Как мне выполнить (вектор) Storage.getInstance().readObject(filePath); в Java 8 Swing?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как мне выполнить (вектор) Storage.getInstance().readObject(filePath); в Java 8 Swing?

Сообщение Anonymous »

Последний симулятор, проект Java Swing.
Я хочу выполнить Vector a1 = (Vector) Storage.getInstance().readObject(filePath); в приложении Java Swing в Windows 10. Я пытался импортировать CodenameOne.jar в пакет Swing, однако получаю исключение нулевого указателя в Storage.getInstance(). Есть ли способ выполнить это в Swing?
Я не инициализировал отображение, однако Display.init(Object m) требует аргумента объекта, а метод Init устарел. Можете ли вы предоставить мне кодовое имя одной зависимости Display и код Java Swing для инициализации Display для выполнения Storage.getInstance().readObject(filePath)?
Передача init(рабочий каталог) решила исключение. Вот код, позволяющий мне выполнить Storage.getInstance().readObject(filePath):
String filePath = incSrv.Pwd();// gets working directory
try {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
Display.init(filePath);
String fileName = "A1-MMA.properties";
Vector a1 = (Vector) Storage.getInstance().readObject(filePath);
}
});
} catch (Exception e) {
}

Однако у меня осталась затемненная форма, которая выглядит модальной. Как я могу избежать этого или избавиться от него?
Я создаю обходной путь для сериализации Vector в Codenameone. Я сохраняю Vector в файл с помощью Storage.getInstance().writeObject(Path, Vector). Я конвертирую файл в байты и записываю его в сокет VIA сервера Swing. Используя Storage.getInstance().readObject(file) на сервере Swing, я десериализовал объект в вектор из моего приложения. Это более эффективно, чем метод, который я использую для доставки сложных векторов из приложения на сервер Swing.
Вы видите красный флаг в этом обходном пути? Например, возможность Storage.getInstance().readObject(file) на сервере Swing может исчезнуть?
Storage.getInstance().readObject(file) // (A1ServiceSrv.java:571)
Caused this Exception:
java.lang.NullPointerException
at com.codename1.io.Storage.init(Storage.java:89)
at com.codename1.io.Storage.getInstance(Storage.java:112)
at Main.A1ServiceSrv.loadVectorFromFile(A1ServiceSrv.java:571)

Я включаю в свой путь к классам CodenameOne.jar с обновлением от 11.12.2021 после обновления CN1 и получаю то же исключение нулевого указателя, передавая «C:\Src1\A1-Arms\A1-Server\A1-MMA.properties» (абсолютный путь). Я также попробовал «A1-MMA.properties», однако я не думаю, что Codenameone знает, где находится мой домашний путь, поскольку он не инициализирует его, как в случае с Display.init («Текущий рабочий каталог, в котором находятся файлы»);. Трассировка стека без вызова Display.init:
java.lang.NullPointerException at

com.codename1.ui.Display.getResourceAsStream(Display.java:3086)
at com.codename1.io.Log.print(Log.java:327)
at com.codename1.io.Log.logThrowable(Log.java:299)
at com.codename1.io.Log.e(Log.java:285)
at com.codename1.io.Storage.readObject(Storage.java:271)
at Main.A1ServiceSrv.loadVectorFromFile(A1ServiceSrv.java:596)

vector = (Vector) Storage.getInstance().readObject(filePath); // (A1ServiceSrv.java:596)


Подробнее здесь: https://stackoverflow.com/questions/701 ... -in-java-8
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»