0

我在做一个项目。在面板类中,我定义了一个鼠标侦听器来调用桌面窗格中的第二个 iframe,但它没有显示出来?

请帮忙谢谢

主班

    public class Try2 extends JFrame{

JTabbedPane pane;
public Try2() {

    setSize(800,500);
    setDefaultCloseOperation(Try2.EXIT_ON_CLOSE);
    setVisible(true);


    pane=new JTabbedPane();
    pane.addTab("First", new desktoppane());
    pane.addTab("Second", new JPanel());


    setContentPane(pane);

}
public static void main(String[] args) {
    new Try2();
}

桌面窗格类

    public class desktoppane extends JDesktopPane{

public desktoppane() {
   // setOpaque(false);
    JButton btnfirst=new JButton("First IFrame");
    btnfirst.setSize(150,25);
    add(btnfirst);
    btnfirst.addMouseListener(new MouseListener() {

        @Override
        public void mouseClicked(MouseEvent e) {

         first f=new first();
         add(f);
        }

        @Override
        public void mousePressed(MouseEvent e) {
        }

        @Override
        public void mouseReleased(MouseEvent e) {
        }

        @Override
        public void mouseEntered(MouseEvent e) {
        }

        @Override
        public void mouseExited(MouseEvent e) {
        }
    });

}

}

第一个 IFrame

    public class first extends JInternalFrame{

public first() {
    setSize(400, 400);
    setVisible(true);
    setClosable(true);

    add(new paneel());

}

}

面板类

    public class paneel extends JPanel{

public paneel() {
    setBackground(Color.red);
    setSize(200,200);
    JButton btnSecond=new JButton("Second IFrame");
    btnSecond.setSize(150,25);
    add(btnSecond);

    btnSecond.addMouseListener(new MouseListener() {

        @Override
        public void mouseClicked(MouseEvent e) {
          Second s=new Second();
          desktoppane p=new desktoppane();

          p.add(s);


        }

        @Override
        public void mousePressed(MouseEvent e) {
         }

        @Override
        public void mouseReleased(MouseEvent e) {
        }

        @Override
        public void mouseEntered(MouseEvent e) {
        }

        @Override
        public void mouseExited(MouseEvent e) {
        }
    });




}

}

第二个 IFrame

    public class Second extends JInternalFrame{

public Second() {
    setSize(400, 400);
    setVisible(true);
    setClosable(true);

    setBackground(Color.yellow);
}

}

4

1 回答 1

2

您正在面板类中创建一个新的桌面窗格,但您没有将其添加到任何内容中。它可能应该添加到您的 JFrame 中。或者,也许您想将 IFrame 添加到现有的桌面窗格,而不是新的。

于 2014-07-17T18:23:16.030 回答