,這裏是我的問題: 交通是一個JTextArea,我插入文本從一個串口快到了,我沒有實現一個的DocumentListener:的paintComponent()條件
Java代碼:
Traffic.getDocument(). AddDocumentListener (new MyDocumentListener());
中的JTextArea「交通「顯示我想要什麼,程序運行沒有任何問題。 現在我想要做的是按行插入行爲(這是測試的目的),我將舉一個例子:
==>我收到了「掛機」,我把一個圖像放在手機的JPanel上,如果我收到「OFF-HOOK」,我把一個圖像放到手機的JPanel中,摘機並且列表中會顯示...
我沒有undrestand如何做到這一點,當我想要如何調用paintComponent並使其繪製我想要的,因爲我只能在paintComponent()中執行圖形操作。 這是對的DocumentListener類:
protected class MyDocumentListener extends JPanel implements javax.swing.event.DocumentListener
{
@Override
public void changedUpdate(javax.swing.event.DocumentEvent e) {
// text has been altered in the textarea
}
@Override
public void insertUpdate(javax.swing.event.DocumentEvent e)
{
// text has been added to the textarea
try {
if (!Traffic.getText(Traffic.getLineStartOffset(Traffic.getLineCount()-1),Traffic.getLineEndOffset(Traffic.getLineCount()-1)-Traffic.getLineStartOffset(Traffic.getLineCount()-1)).contains(">>"))
{
if (Traffic.getLineCount() == (lastreplace + 2))
{
System.err.println(Traffic.getText(Traffic.getLineStartOffset(lastreplace),Traffic.getLineEndOffset(lastreplace) - Traffic.getLineStartOffset(lastreplace)));
lastreplace +=1;
}
else
{
System.err.println(Traffic.getText(Traffic.getLineStartOffset(lastreplace),
Traffic.getLineEndOffset(lastreplace) -
Traffic.getLineStartOffset(lastreplace)));
}
}
Traffic.setCaretPosition(Traffic.getDocument().getLength());
} catch (BadLocationException ex) {
Logger.getLogger(TrafficSerialPort.class.getName()).log(Level.SEVERE, null, ex);
}
}
@Override
public void removeUpdate(javax.swing.event.DocumentEvent e) {
// text has been removed from the textarea
}
}
我試圖用一種叫做"PortArchitecture (..)"
方法會得出什麼我想我用getGraphics()
但有人告訴我,它不應該被用來paintComponent()
,現在我真的卡住請幫忙。
1)*「我想要一個entant數據」 *什麼是「entant ' 意思? 2)爲了更快地獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。 3)對代碼塊使用一致的邏輯縮進。代碼的縮進旨在幫助人們理解程序流程。 4)你的問題是什麼? –
完成,並感謝安德魯希望現在清楚 –