例如,我有一个日历。是否可以在日历中的所有月份重复使用包含日期编号“1”的JLabel?或者我是否必须在所有这些中制作另一个JLabel?我做了一整年的日历,但我的代码有7k行代码......
答案 0 :(得分:1)
答案是:是的,你可以重用GUI组件,但之前的组件将无法使用,因为JLabel一次只能显示在一个容器上,它是最多的容器最近加入了。
但你为什么要这样做?如果您的JLabel正在显示它,请重新使用ImageIcon。否则你只是用它来显示文字。您的问题表明您的程序设计可能已关闭,您可能需要重新考虑程序的结构。最重要的是,不要将程序模型与其视图混淆。
您最近的评论:'
如果我不使用ImageIcon,是否可以?并只使用纯JLabel文本?我正在使用Netbeans GUI创建者btw。
再次你为什么要?它只是持有文字。我建议你不要这样做,我再次担心你的程序设计很糟糕。也许你真正想要使用的是JTable。
嗨!谢谢你的快速回复!我的JLabel日期在JPanel(月份面板)中,所有面板都在JFrame中。当我点击一个JButton时,它会隐藏当前面板并显示下一个面板。每个小组(12个月小组)有许多JLabel。我应该每年制作另一个JFrame以避免滞后吗?
应该没有滞后。您将需要使用CardLayout交换JPanel。
您可能要做的是为常规Month对象创建一个类,然后为每个特定月份创建此对象的实例。再想一想,重新设计。此外,学习没有生成代码的代码,因为这将增强您对正在使用的库的理解。
首先创建一个非GUI模型类Month:
然后,对于GUI部分,创建一个GUI类来表示月份,比如称为MonthView
现在,您的日期将由最多包含35个JLabel的代码表示。当然,您的日期将有365个JLabel,但只需要35(7 * 5)个JLabel的代码就可以创建所有JLabel。
答案 1 :(得分:0)
如果你要与早期的JLabel同时绘制它,你应该创建一个新的JLabel。
要获得高质量的答案,您应该提供一个清晰,简单,自包含的代码示例来演示您的问题。