簡體   English   中英

Java Swing體系結構用於翻閱基於JPane的視圖

[英]Java Swing architecture for flipping through JPane based views

我已經用靜態布局完成了幾個簡單的基於swing的應用程序,但是現在嘗試創建一個包含多個視圖的應用程序時遇到了問題,這些視圖可以通過按適當的導航按鈕進行更改。

您可以將其與網站進行比較,以便每個視圖都具有訪問某些其他視圖的按鈕,但這可以在單個JFrame中使用。

我發現也許CardLayout( Cardlayout示例 )可能是這種結構的合適解決方案,但是我無法找出一種方法來從我在JPanes中實現的按鈕中切換視圖。他們各自的班級

當然,一種方法是像在小型Java教程示例中那樣實例化父類中的所有內容,但這不是很干凈,也不是針對多個視圖的模塊化的,不是嗎。

如何實現這一點,以便我可以訪問視圖切換方法?

是的,當您要在其中切換各種視圖時,CardLayout特別適用。 顯然,就像@medoal所說的那樣,也可以使用JTabbedPane。 無論如何,考慮到您要使用CardLayout且面板內的按鈕允許您更改可見面板,您可以這樣做:

  1. 創建面板,並允許他們注冊一個實現給定接口的對象。 該接口將包含一個覆蓋CardLayout#show(Container,String)方法的方法。 好吧,作為一個例子,考慮到您的面板都設置了名稱,並且每個名稱都不相同,您可以編寫如下內容

    公共接口PanelToggler {public void toggleTo(String name); }

  2. 在包含CardLayout的類中,您將使用以下方法實現PanelToggler

    public void toggleTo(String name){(((CardLayout)getLayout())。show(this,name); }

這樣,在每個面板中,每個按鈕從CardLayout切換查看的元素都只需要使用正確的參數調用toogleTo。

暫無
暫無

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

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