如何从另一个班级调用cardlayout.show?

时间:2012-10-16 05:19:18

标签: java swing layout jpanel cardlayout

我正在尝试将方法cardlayout.show调用到下面的课程。

protected void makelabeltxt(final String text, GridBagLayout gridbag, GridBagConstraints c, int width, int height, final String panel) {
    final JLabel label = new JLabel(text);              
    Dimension d = new Dimension(width, height);
    gridbag.setConstraints(label, c);
    label.setFont(new Font("Sans Serif", 0, 11));
    label.setPreferredSize(d);


    label.addMouseListener(new MouseListener() {

        @Override
        public void mouseClicked(MouseEvent e) {                
            System.out.println(panel);
            fp.showPanel(panel);
            System.out.println("mouse clicked "+text);
        }

        @Override
        public void mousePressed(MouseEvent e) {
            label.setText("  " + text);
            System.out.println("mouse pressed "+text);
        }

        @Override
        public void mouseReleased(MouseEvent e) {
            label.setText(" " + text);
            System.out.println("mouse release "+text);
        }

        @Override
        public void mouseEntered(MouseEvent e) {
            label.setText(" " + text);
            System.out.println("mouse entered "+text);
        }

        @Override
        public void mouseExited(MouseEvent e) {
            label.setText(text);

        }
    });
    add(label);
}

在另一个类中,我创建了这样的方法,这是我想调用的方法。我想交换jpanel,但是在另一个jpanel中:下面的方法正在运行,但是当cardlayout显示脚本时,没有任何反应,println脚本没问题

public void showPanel(String panel){
    System.out.println("panel : "+panel);       
    cl.show(mainInPanel, panel);
}

这是我如何使用cardlayout将JPanel添加到JPanel

public void initPanelFrm(JPanel panel, String gambar) {             
        GridBagLayout gridbag = new GridBagLayout();
        GridBagConstraints gbc = new GridBagConstraints();
        panel.setLayout(gridbag);
        panel.setPreferredSize(new Dimension(810, 280));
        panel.setBackground(Color.white);
        makelabelimg("com/reporting/image/"+gambar+".png", 444, 23, panel);     
        panel.setVisible(false);
        mainInPanel.add(panel, gambar); 
    }

    public void initInPanel(){
        rekappenjualanpsc = new JPanel();
        initPanelFrm(rekappenjualanpsc, "rekappenjualanpsc");
        rekapbastudenganmaskapai = new JPanel();
        initPanelFrm(rekapbastudenganmaskapai, "rekapbastudenganmaskapai");
        rekapitulasisetoranmaskapai = new JPanel();
        initPanelFrm(rekapitulasisetoranmaskapai, "rekapitulasisetoranmaskapai");
        rekappenjualanpscpermaskapai = new JPanel();
        initPanelFrm(rekappenjualanpscpermaskapai, "rekappenjualanpscpermaskapai");
        rekappungutanlangsungpsc = new JPanel();
        initPanelFrm(rekappungutanlangsungpsc, "rekappungutanlangsungpsc");
        laporandetailpetugas = new JPanel();
        initPanelFrm(laporandetailpetugas, "laporandetailpetugas");
        detailpembayaranpenumpang = new JPanel();
        initPanelFrm(detailpembayaranpenumpang, "detailpembayaranpenumpang");

    }

0 个答案:

没有答案