我目前有两个JFrame
窗口的课程。
一个有两组选项卡式窗格,一个位于左侧,每个选项卡顶部都有一组选项卡。
我有一些框架类,我想在选项卡面板中,我想(不确定),唯一的方法是使用内部框架?
所以我的问题是,是否可以将一个类从一个类创建到另一个类的JInternalFrame
中,以便在单击该选项卡时出现内部框架?
或者是否可以通过其他方式将框架显示为JTabbedPane
中的一个标签?
答案 0 :(得分:2)
我有一些JFrame类,我想在选项卡面板中,我想(不确定),唯一的方法是使用内部框架?
这不是一个明确的问题。在我看来,这表明你有一个视图,一个JFrame中保存的数据和组件的显示,而不是在一个单独的窗口中显示这些信息,你想要在一个单独的窗口中显示多个视图应用程序窗口,作为不同的JTabbedPanes。
如果是这样,那么解决方案是重新编写显示为JFrames的视图,而不是创建JPanels,然后将JPanels作为单独的窗格放入JTabbedPanes中。没有必要为此使用JDesktopPane和JInternalPanes。
从JFrame中提取JPanel的一种快速而肮脏(并不总是干净)的方法是获取JFrame的contentPane(通常是JPanel)并将其放置在需要的位置。
所以我的问题是,是否有可能将类中的JFrame转换为另一个类中的JInternalFrame,以便在单击选项卡时出现JInternalFrame?
这是一个XY问题。同样最好的解决方案是不要编写你的Swing GUI来扩展JFrame,因为它会把你描绘成一个你不想进入的角落(正如你发现的那样),而是让你的代码面向创建更加灵活的JPanel,然后将这些JPanel放在需要的地方 - 在JFrames,其他JPanels,JDialogs中......,无论何时需要它们。
与往常一样,任何解决方案的详细信息都取决于您当前代码的详细信息和当前问题,因此如果以后需要更多具体帮助,请创建并发布有效的SSCCE,并将其包含在内提出你的问题。另外,请阅读The Use of Multiple JFrames: Good or Bad Practice?。