如何使用CardLayout更改这些面板?

时间:2015-05-11 05:12:40

标签: java swing layout-manager cardlayout

所以,我将会有更多这些面板,但是当用户按下开始或下一个按钮时,我不知道如何切换这些面板。

//IngestionOfDigestion.java teaches the user about the digestive system through interactive components
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;

public class IngestionOfDigestion extends JFrame {

    public static void main(String[] args) {
        IngestionOfDigestion i = new IngestionOfDigestion();
    }

    public IngestionOfDigestion() {//frame header
        //make the frame
        super("Ingestion Of Digestion");
        setSize(1900, 1100);
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        setLocation(10, 50);
        setResizable(true);
        layout t = new layout();

        add(t);
        setContentPane(t);
        setVisible(true);

    }
}

class layout extends JPanel {

    public Mouth m;
    public CardLayout cardlay = new CardLayout();
    Title title = new Title();

    public layout() {
        m = new Mouth();
        cardlay.show();
        setLayout(cardlay);
        add(m, "Mouth");

        add(title, "Title");
    }
}

class Title extends JPanel implements ActionListener {//make title panel

    private JButton c;//jbutton to  start the game
    private boolean startpressed;//button pressed variable
    //JPanel card2;
    //JPanel card3;

    public Title() {//title method header

                        //cardstack = new JPanel(cardlay);
        c = new JButton("Press to start playing");//make jbutton saying start the game
        c.addActionListener(this);
        add(c);
        startpressed = false;

    }

    public void paintComponent(Graphics g) { //paint component
        super.paintComponent(g);//super.paintComponent              
        Font title = new Font("Serif", Font.BOLD, 90);//make font
        g.setFont(title);
        g.drawString("Ingestion Of Digestion", 160, 100);//draw the title
        if (startpressed == true) {//if buttonpressed is true

            repaint();
        }
    }

    public void actionPerformed(ActionEvent e) {//ActionPerformed
        if (e.getSource() == c) {

            startpressed = true;//change boolean
            cardlay.next();
            repaint();
        }
    }

}
                                                                                //if button is pressed

//end title panel
class Mouth extends JPanel implements ActionListener, ChangeListener {

    private JButton chew;//make chew button
    private JButton next;//next button
    private JSlider saliva;//make saliva slider
    private boolean nextpressed;//nextbuttonpressed variable
    private boolean chewpressed;//buttonpressed variable

    Mouth() {//mouth method
        chew = new JButton("Press to chew the food");
        chew.addActionListener(this);
        add(chew);
        chewpressed = false;
        JSlider saliva = new JSlider(JSlider.HORIZONTAL, 0, 100, 0);

        add(saliva);
        next = new JButton("Press to go to the next step of digestion");
        next.addActionListener(this);
        add(next);
        nextpressed = false;
    }

    public void paintComponent(Graphics g) {//paint component
        super.paintComponent(g);//super.paintComponent     
        //draw the head
        Color skin = new Color(255, 204, 133);
        g.setColor(skin);
        g.fillArc(810, 1000, 550, 550, 0, 180);
        g.fillRect(1085, 600, 150, 550);
        g.fillRect(700, 250, 535, 380);
        int[] w = {700, 700, 660};
        int[] t = {340, 420, 420};
        g.fillPolygon(w, t, 3);
        Color hair = new Color(100, 60, 0);
        g.setColor(hair);
        g.fillArc(700, 175, 535, 150, 0, 180);
        g.setColor(Color.WHITE);
        g.fillOval(730, 275, 45, 45);
        g.setColor(Color.BLACK);
        g.fillOval(752, 297, 15, 15);
        g.setColor(Color.RED);
        g.fillRect(700, 480, 285, 75);
        g.fillRect(985, 497, 145, 45);
        g.fillRect(1130, 497, 30, 590);
        g.setColor(Color.WHITE);
        g.fillRect(702, 480, 15, 20);
        g.fillRect(719, 480, 15, 20);
        g.fillRect(736, 480, 15, 20);
        g.fillRect(753, 480, 24, 20);
        g.fillRect(779, 480, 24, 20);
        g.fillRect(805, 480, 24, 20);
        g.fillRect(702, 535, 15, 20);
        g.fillRect(719, 535, 15, 20);
        g.fillRect(736, 535, 15, 20);
        g.fillRect(753, 535, 24, 20);
        g.fillRect(779, 535, 24, 20);
        g.fillRect(805, 535, 24, 20);

        if (chewpressed == true) {
            Color skint = new Color(255, 204, 133);
            g.setColor(skint);
            g.fillArc(810, 1000, 550, 550, 0, 180);
            g.fillRect(1085, 600, 150, 550);
            g.fillRect(700, 250, 285, 380);
            int[] wt = {700, 700, 660};
            int[] tw = {340, 420, 420};
            g.fillPolygon(w, t, 3);
            Color hairt = new Color(100, 60, 0);
            g.setColor(hairt);
            g.fillArc(700, 175, 535, 150, 0, 180);
            g.setColor(Color.WHITE);
            g.fillOval(730, 275, 45, 45);
            g.setColor(Color.BLACK);
            g.fillOval(752, 297, 15, 15);
            g.setColor(Color.RED);
            g.fillRect(700, 480, 285, 42);
            g.fillRect(985, 497, 145, 35);
            g.fillRect(1130, 497, 30, 590);
            g.setColor(Color.WHITE);
            g.fillRect(702, 480, 15, 20);
            g.fillRect(719, 480, 15, 20);
            g.fillRect(736, 480, 15, 20);
            g.fillRect(753, 480, 24, 20);
            g.fillRect(779, 480, 24, 20);
            g.fillRect(805, 480, 24, 20);

            g.fillRect(702, 502, 15, 20);
            g.fillRect(719, 502, 15, 20);
            g.fillRect(736, 502, 15, 20);
            g.fillRect(753, 502, 24, 20);
            g.fillRect(779, 502, 24, 20);
            g.fillRect(805, 502, 24, 20);
            repaint();
        }
    }

    public void actionPerformed(ActionEvent e) {//ActionPerformed
        if (chew.getText().equals("Press to chew the food")) {//if "press my belly" pressed,
            chewpressed = true;//change boolean
            repaint();
            if (next.getText().equals("Press to go to the next step of digestion")) {
                nextpressed = true;
            }
            repaint();
        }

    }

    public void stateChanged(ChangeEvent e) {
        int location1 = saliva.getValue();
    }

}
                                                //draw the info
//if buttonpressed is true
//show head with teeth clenched
//else if slidermoved is true
//show saliva moving in mouth
//else if nextbuttonpressed is true
//go to next panel
//ActionPerformed
//if button is pressed
//buttonpressed is true
//else if slider is moved
//slidermoved is true
//else if next button is pressed
//nextbuttonpressed is true

0 个答案:

没有答案