2012-12-08 51 views

回答

1

據我所知,唯一的辦法就是用自己的UI委託的內部框架。有關一篇文章解釋了UI代表的工作方式,請參閱http://today.java.net/pub/a/today/2007/02/22/how-to-write-custom-swing-component.html

因爲你似乎使用Synth外觀N」的感覺,你應該能夠輕鬆地創建自己的SynthInternalFrameUI子類,這將覆蓋createNorthPane()方法,以創建並返回的SynthInternalFrameTitlePane定製子類的實例。

此自定義標題窗格將依次覆蓋addSubComponents()方法以便不添加menuButton。我沒有測試過所有這些,所以也許你需要重寫其他方法。

+0

感謝您的幫助.....下拉菜單中刪除,但現在我怎麼可以設置通過按住鼠標單擊取消movalbe在桌面窗格中的jinternal框架? –

+0

我不明白你想要做什麼。你想讓內部框架無法移動?如果是這樣,您可能需要進一步自定義UI委託。查看添加偵聽器的源代碼。 –

+0

對不起我弱的英語....我想如何設置爲不可移動到桌面窗格中的JInternalFrame?意味着停止在桌面窗格中移動jinternal框架... –

0

1.如何刪除或隱藏左側下拉菜單僅在jinternal框架標題欄上,而不是刪除或隱藏整個標題欄。 源代碼:

BasicInternalFrameUI ui = (BasicInternalFrameUI)internalFrame.getUI(); 
Container north = (Container)ui.getNorthPane(); 
north.remove(0); 
north.validate(); 
north.repaint(); 

2.如何設置不通過鼠標保持在JDesktop中窗格移動jinternal幀。 源代碼:

for(MouseListener listener : ((javax.swing.plaf.basic.BasicInternalFrameUI) internalFrame.getUI()).getNorthPane().getMouseListeners()){ 
     ((javax.swing.plaf.basic.BasicInternalFrameUI) internalFrame.getUI()).getNorthPane().removeMouseListener(listener); 
     } 

感謝

相關問題