我的JLabel都不会出现

时间:2014-05-09 18:01:13

标签: java swing jframe jlabel

所以我在编程课程中为我的最终项目制作了一个Calendar程序,并添加了月份中列出的日期,我将一大堆JLabel作为实例变量(对于6乘7网格为42)

JLabel day1;
JLabel day2;
JLabel day3;
JLabel day4;
JLabel day5;
JLabel day6;
JLabel day7;
JLabel day8;
JLabel day9;
JLabel day10;
etc.

然后我有一个方法可以获取我已设置的当前月份并根据返回的内容我有一大堆if语句来设置哪些数字去哪(我计划在设置的位置设置42)并根据月份改变他们的内容,而不是移动31)的位置

if (Threads.getMonth() == 0)
    {
        day1 = new JLabel("");
        day2 = new JLabel("");
        day3 = new JLabel("");
        day4 = new JLabel("1");
        day5 = new JLabel("2");
        day6 = new JLabel("3");
        day7 = new JLabel("4");
        day8 = new JLabel("5");
        day9 = new JLabel("6");
        day10 = new JLabel("7");
etc.

我更有经验的朋友建议在if语句中创建对象,这样就是这样。然后在那十二个if语句之后,我设置了边界并将其添加到框架中。

day10.setBounds(100, 100, 500,500);
add(day10);

我在那个地方只是为了测试它出现并在第10天使用它,因为无论哪个月第10天总是有实际价值。

虽然每次运行此程序时,JLabel都无法显示,但是如果不能执行此操作,我无法使程序运行。如果它有帮助我有大约20个类(每个月一个,一个主要,一个线程类,一个gui,还有一些其他功能,我还在继续工作。)

这段代码来自gui类。如果它可能有这样的方式我的类交互方式是主类调用线程类线程获取日期并打开该月的类打开gui然后所有按钮按下运行通过处理程序类,它将数据发送到线程类以完成更多操作,然后您只需按下x按钮即可退出。

我的gui班级名称是:

public class Gui extends JFrame

当我调用类时,我将流布局设置为null,并且它已经适用于其他所有内容(jcomboboxes,jbuttons)。

当我使用add(day#)语句时,因为它正在扩展jframe,所以它应该将它添加到框架中,并且除了这些之外还适用于包括jlabel在内的所有其他内容。

1 个答案:

答案 0 :(得分:2)

您需要在面板中添加标签

//adds label to panel
myPanel.add(label);

然后将面板添加到框架

//adds panel to frame
myFrame.add(myPanel);