簡體   English   中英

Java Swing-將面板全局更改為具有粉紅色背景

[英]Java Swing - Globally Change Panels to Have Pink Background

我知道您可以通過設置“外觀”來更改應用程序的整體外觀。 是否可以在不編寫外觀類的情況下全局更改組件? 例如,如果您希望所有按鈕均為黑色,該如何做? 我在畫空白。

感謝ST

使用UIManager並更改外觀的默認設置。 這里有一個很好的工具: http : //tips4java.wordpress.com/2008/10/09/uimanager-defaults/ ,如果您運行Java Web Start程序,它將允許您瀏覽每個組件的鍵和值。

但是,僅更改背景可能會引起一些新問題,請看以下問題: Java-更改背景色?

一種解決方案可以是工廠模式。

您可以創建一個Factory類,該類創建具有預定義設置的按鈕。 每當需要按鈕時,請使用此工廠類,您將獲得具有預定義屬性的對象。

Button button = factory.createButton()

class Factory{
 Button createButton(){
   Button button = new Button();
   button.setBackgroundColor(Color.PINK);
   return  button;
 }
}

如果您有相應組件的集合,則可以遍歷它們以設置BG顏色。

public void setBgColor( Color color, List< Component > components ) {
    for ( Component c : components ) {
        c.setBackgroundColor( color );
    }
}

困難的部分是獲取組件列表。 我通過向集合注冊某些組件組並使用上述方法設置各種屬性來完成此操作。 這種情況對於集中式對象創建是一個很好的論據。

如果不僅需要更改顏色怎么辦? 如果這是一個一切都在您控制之下的應用程序,那么利用繼承是有意義的-為所有必需的組件(例如面板,按鈕)創建基類,並重寫paintComponent方法以適應您的需求。 如果可以通過提供相關的“ painters”(從paintComponent方法調用)來在實例化時自定義基本組件中paintComponent方法的行為,則此方法可以更具模塊化。

是一個潛在有用的鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM