Эффективное отображение выходных данных последовательного порта в текстовом поле в java

Я делаю приложение с графическим интерфейсом для управления удаленным устройством через последовательный порт. Для этого я использую два потока — «чтение из» и «запись в» последовательный порт. Мой основной фрейм приложения содержит одну строку меню с элементами меню и элементами подменю, а также одну прокручиваемую текстовую область. Теперь я помещаю весь вывод из последовательного порта в текстовую область, так что это похоже на консоль. Оболочка последовательного порта дает мне вывод команды примерно так

line1 word1 word2 wordd3 word4 word5 :
    line2 word1 = 0x00000000
    line3 word2 = 0x00000000
line3Word1 : line3word2
line4Word1 : line4Word2
line5Word1 : line5word2
line6Word1 : line6Word2

Теперь я хочу поместить несколько строк в основной кадр в метки. Что-то вроде этого.

line4Word1(in label1) : line4Word2(in label2)
line5Word1(in label3) : line5word2(in label4)

Теперь, если я поставлю проверки строк line4Word1 и line5Word1 при чтении последовательных портов, боюсь, смогу ли я обрабатывать строку и создавать метки при получении данных в реальном времени?

Может ли кто-нибудь предложить мне лучший способ сделать это?

Извините, если я не могу ясно объяснить проблему. Но если не ясно, пожалуйста, дайте мне знать, я объясню это лучше....


person Surjya Narayana Padhi    schedule 22.12.2009    source источник


Ответы (1)


Для области прокрутки метод append() объекта [JTextArea](http://java.sun.com/javase/6/docs/api/javax/swing/JTextArea.html#append(java.lang.String)) оказывается потокобезопасным. Чтобы получать потокобезопасные обновления для других компонентов графического интерфейса, я бы использовал SwingWorker, также обсуждаемый здесь.

person trashgod    schedule 22.12.2009