尝试将多个面板对象添加到创建基本JFrame的其他类

时间:2011-08-02 04:08:55

标签: java swing jframe jpanel

我正在创建一个充当容器的类,它包含标签和按钮。我希望按钮仅在鼠标悬停在新图层上时显示,并且可以点击,但这不是我的问题(我已经为此发现了OyverLay Layout和JLayeredPane,我稍后会想到这一点)。就像我说我计划使用JLayeredPane与常规JPanel(因为它的多层功能)最有可能,但我的第一个问题是如果这个类将对象实例化到另一个类JFrame容器上,这是正确的容器类型?我不认为这是因为它作为一个面板创建了一个带有标题栏和按钮的窗口,我不希望这样。我只是希望这个类用我的标签和按钮实例化一个盒子,并将它添加到一个JFrame中,与其他按钮一起放在网格中???

我的主要问题是,我希望这个包含标签的容器和按钮被添加到一个JFrame中,该JFrame是一个类的主要工作是从我的第一个类中保存容器并让用户能够添加更多,并通过用户界面删除。

基本上我想要一个带有文本框和按钮的表单,然后该按钮将一个新的ListItem对象添加到另一个类的JFrame中,新对象标签文本从文本框构建,在该JFrame上实例化一个新对象。所以,如果我按下按钮5次,我会看到5个盒子,里面有5个标签,上面有一个独特的单词,一个在另一个上面。

我已经研究过使用根容器,使用JInternalFrames,并尝试了所有其他魔术技巧,但似乎无法让它正常工作。

以下是我构建的类的代码。

* 在我的课程上面是我需要的对象的导入,以及这里使用的各种字符串,按钮和标签的创建。我在这里粘贴的是我的代码的内容,即在实例化时创建和显示的对象 ***

public ListItem(String nameC, String timeC, String recordNum)
{
    JLayeredPane panel1 = new JLayeredPane();
    name = nameC; time = timeC; recordN = recordNum;
            //fullItemString is a String object
    fullItemString = "Help " + name + " at " + time + " regarding " + "Record # " + recordNum;
            //item is a label
    item.setText(fullItemString);
    item.setFont(verdana);

    minusButton.putClientProperty("JButton.buttonType", "square");
    exportButton.putClientProperty("JButton.buttonType", "square");
    editButton.putClientProperty("JButton.buttonType", "square");

    // setSize(425, 50);
    //setDefaultCloseOperation(EXIT_ON_CLOSE);

    minusButton.setBounds(175, -1, 35, 30);
    editButton.setBounds(210, -1, 35, 30);
    exportButton.setBounds(130, -1, 35, 30);

    panel1.add(minusButton);//, new Integer(2));
    panel1.add(top);//, new Integer(1));
    panel1.add(editButton);//, new Integer(3));
    panel1.add(exportButton, new Integer(4));

    minusButton.addActionListener(this);
    item.addMouseListener(this);

    exportButton.setVisible(false);
    minusButton.setVisible(false);
    editButton.setVisible(false);

    lp.setVisible(true);
    setVisible(true);
}

1 个答案:

答案 0 :(得分:1)

使用CardLayout在JFrame中添加多个面板。试试吧......