我需要一个可以追溯到上一个屏幕的方法

时间:2016-04-13 20:02:02

标签: java swing

我需要一个方法,以便当用户按下nextCustomerBtn时,它将加载上一个屏幕。 任何帮助将不胜感激。

这是类MenuPage

的摘录
 JButton nextCustomerBtn = new JButton("Next Customer");
    nextCustomerBtn.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {


        }
    });
    nextCustomerBtn.setBounds(364, 306, 127, 29);
    contentPane.add(nextCustomerBtn);

    }

这是上一个屏幕的代码。

public class Restaurant extends JFrame {

private JPanel contentPane;
private JTextField restaurantTxt;
private JTextField numDiners;
private JTextField numDinersTxt;
private JTextField tableNumTxt;
private JTextField numTable;
private JButton numTableSubBtn;
private JButton proceedMenuBtn;
MenuPage parent;
/**
 * Launch the application.
 */
////
public static String tableNumber;
public static String dinerNumber;
////

public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                Restaurant frame = new Restaurant();
                frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

/**
 * Create the frame.
 */

public Restaurant() {
    super("Restaurant");
    parent = new MenuPage();
    initGUI();


  // numTable = new JTextField("NewUser", 10);
}

public void initGUI() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 840, 368);
    contentPane = new JPanel();
    contentPane.setBackground(new Color(100, 149, 237));
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(contentPane);
    contentPane.setLayout(null);

    restaurantTxt = new JTextField();
    restaurantTxt.setHorizontalAlignment(SwingConstants.CENTER);
    restaurantTxt.setEditable(false);
    restaurantTxt.setText("Matthew's Restaurant");
    restaurantTxt.setBounds(340, 23, 191, 20);
    contentPane.add(restaurantTxt);
    restaurantTxt.setColumns(10);

    numDiners = new JTextField("", 10);
    numDiners.addKeyListener(new KeyAdapter() {
        @Override
        public void keyTyped(KeyEvent e) {                              //method to only allow the textfield to accept numbers, backspace or delete.
            char c=e.getKeyChar();
            if(!(Character.isDigit(c) || (c==KeyEvent.VK_BACK_SPACE)||c==KeyEvent.VK_DELETE)){
            e.consume();                                                                        // consume will not allow the user to enter anyhting but a number.

            if (e.getKeyCode() == 10) {
                JOptionPane.showMessageDialog(Restaurant.this, "Please select a meal");

            }
            }
        }

    });
    numDiners.setBounds(448, 89, 83, 26);
    contentPane.add(numDiners);
    numDiners.setColumns(10);

    JButton numDinersSubBtn = new JButton("Submit");
    numDinersSubBtn.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {

            dinerNumber = numDiners.getText();
            numDiners.setText("");                                                  // this sets the textfield to be blank when the submit button is entered.
        }
    });


    numDinersSubBtn.setBounds(612, 89, 83, 29);
    contentPane.add(numDinersSubBtn);

    numDinersTxt = new JTextField();
    numDinersTxt.setEditable(false);
    numDinersTxt.setText("Number of diners ?");
    numDinersTxt.setBounds(251, 89, 130, 26);
    contentPane.add(numDinersTxt);
    numDinersTxt.setColumns(10);

    tableNumTxt = new JTextField();
    tableNumTxt.setEditable(false);
    tableNumTxt.setText("Table number ?");
    tableNumTxt.setBounds(252, 164, 130, 26);
    contentPane.add(tableNumTxt);
    tableNumTxt.setColumns(10);


    numTable = new JTextField("", 10);
    numTable.addKeyListener(new KeyAdapter() {
        @Override
    public void keyTyped(KeyEvent e) {                              
            char c=e.getKeyChar();
            if(!(Character.isDigit(c) || (c==KeyEvent.VK_BACK_SPACE)||c==KeyEvent.VK_DELETE)){
            e.consume();
                                                                                                //method to only allow the textfield to accept numbers, backspace or delete
            if (e.getKeyCode() == 10) {                                                         // consume will not allow the user to enter anyhting but a number.  
            //tableNumber = numTable.getText();
            //System.out.println("enter pressed");
            }
            }
    }
    });

    numTable.setBounds(448, 164, 83, 26);
    contentPane.add(numTable);
    numTable.setColumns(10);

    numTableSubBtn = new JButton("Submit");
    numTableSubBtn.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {

            tableNumber = numTable.getText();
            numTable.setText("");
    }

    });
    numTableSubBtn.setBounds(612, 164, 83, 29);
    contentPane.add(numTableSubBtn);

    proceedMenuBtn = new JButton("Proceed to menu");
    proceedMenuBtn.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {

            MenuPage nw = new MenuPage();                           // the new visual class window has been created and called MenuPage. The proceedMenuBtn
            nw.NewScreen();                                         // takes the user to the NewScreen.
        }
    });
    proceedMenuBtn.setBounds(608, 265, 135, 29);
    contentPane.add(proceedMenuBtn);

    JTextPane txtpnWelcomeToMatthews = new JTextPane();
    txtpnWelcomeToMatthews.setEditable(false);
    txtpnWelcomeToMatthews.setText("Welcome to Matthew's Restaurant\n\nTo get started with your dining experience please enter the number of diners and the table number of your choice.\n\nPress Submit when done.\n\nPress proceed to menu.\n\nEnjoy.");
    txtpnWelcomeToMatthews.setBounds(20, 38, 183, 256);
    contentPane.add(txtpnWelcomeToMatthews);

}
}

0 个答案:

没有答案