[英]Trying to dispose a class which extends JXPanel on click of Cancel Button
我需要在單擊“ Cancel
按鈕時JXPanel
一個擴展JXPanel
的類,似乎無法找到任何方法。
我有一個A類,在單擊按鈕A時具有按鈕A,因此正在調用B類。 B類具有顯示所有內容的顯示方法,並調用ClassC
class A : in actionPerformed()
if (e.getSource().equals(buttonA )){
try {
new ClassB(parent);
} catch (BusinessException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
In class B
private void display() throws BusinessException{
dialog = new JDialog(parent, "Dialog");
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setContentPane(createContentPane());
dialog.setModal(true);
//dialog.setBackground(Color.WHITE);
dialog.setMinimumSize(new Dimension(1190, 200));
//dialog.setMaximumSize(new Dimension(1190, 500));
dialog.pack();
dialog.setLocationRelativeTo(parent);
dialog.setVisible(true);
}
in createContentPane()
public JPanel createContentPanel() throws BusinessException{
JPanel panel = new JPanel(new CardLayout());
panel.setBackground(Color.WHITE);
panel.add("New Dialog", new ClassC(parent));
return panel;
}
現在我在ClassC中有我的“取消”按鈕,單擊此Class CI,需要關閉ClassB的對話框
首選的解決方案是定義一種可以傳遞給類C的控制器,該控制器可用於通過某些動作(例如取消動作)提供通知。
控制器將負責根據動作/事件確定應執行的操作
另一種解決方案是允許對話框本身控制取消(以及其他相關的用戶操作),因為“取消”對於類C並不總是有意義,您可以使用類生成的值,也可以不使用, C級負責管理此任務(這就是模型的來歷)
另一個解決方案是將對話框的引用傳遞給類C,但這會在對話框和類之間產生緊密的耦合,並不必要地公開對話框
另一種解決方案是使用SwingUtilities.windowForComponent
,它允許您獲取對包含該類的窗口的引用,但這對如何使用該類做出了假設。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.