2012-09-30 65 views
0

我希望通過擴展Java swing - JComponent類來創建文本編輯組件。java Swing - 擴展JComponent類以創建文本編輯器組件

應該爲此組件設置的UI外觀應該是什麼?

我嘗試這樣做:

public void updateUI(){ 
    setUI((TextUI)UIManager.getUI(this)); 
     invalidate(); 
} 

然而,這將引發異常:

UIDefaults.getUI() failed: no ComponentUI class for: com.gatech.ui.courier.TextComponent 

TextComponent.java是我的類擴展JComponent的。

我錯過了什麼?有沒有其他方法來創建自己的文本編輯組件?

+7

您不認爲使用什麼* JEditorPane *或* JTextPane *或者可能覆蓋它們以滿足您的需求? – Sujay

+8

@Sujay:是的,爲什麼重新發明車輪時,它正好在那裏供您使用! –

回答

0

嘗試插入方法

public String getUIClassID() { 
    return "TextPaneUI"; 
} 

在TextComponent中。所以你可以從JTextPane獲得UI。我認爲JComponent沒有UI(如果有的話 - 它不是一個TextUI)。 但是,如果您創建自己的組件 - 您可能需要創建自定義用戶界面。