Java 试图在两个类之间传递表号

Java 试图在两个类之间传递表号,java,swing,Java,Swing,我正在尝试将餐馆类中的表号传递到菜单页类中的tableLabel中。当代码运行时,tableLabel返回null。如果您能在运行时启用代码以返回tableLabel中的数字,我们将不胜感激 餐厅课程摘录 public class Restaurant extends JFrame { private JPanel contentPane; private JTextField restaurant_Txt; private JTextField num_Diners; private JTe

我正在尝试将餐馆类中的表号传递到菜单页类中的tableLabel中。当代码运行时,tableLabel返回null。如果您能在运行时启用代码以返回tableLabel中的数字,我们将不胜感激

餐厅课程摘录

public class Restaurant extends JFrame {

private JPanel contentPane;
private JTextField restaurant_Txt;
private JTextField num_Diners;
private JTextField num_Diners_Txt;
private JTextField table_Num_Txt;
private JTextField num_Table;
private JButton num_TableSub_Btn;
private JButton proceed_Menu_Btn;
private JButton MyDocumentListener;
MenuPage parent;

public static String tableNumber;

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();
            }
        }
    });
}



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

   num_Table = new JTextField("NewUser", 10);
}

public void initGUI() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 640, 310);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(contentPane);
    contentPane.setLayout(null);

    table_Num_Txt = new JTextField();
    table_Num_Txt.setEditable(false);
    table_Num_Txt.setText("Table number ?");
    table_Num_Txt.setBounds(145, 164, 112, 26);
    contentPane.add(table_Num_Txt);
    table_Num_Txt.setColumns(10);


    num_Table = new JTextField("");
    num_Table.addKeyListener(new KeyAdapter() {
    public void keyTyped(KeyEvent e) {                          
        if (e.getKeyCode() == 10) {                                                         
                tableNumber = num_Table.getText();      

            }
    }
    });

    num_Table.setBounds(334, 161, 83, 26);
    contentPane.add(num_Table);
    num_Table.setColumns(10);

}
}
从菜单页面类中提取

   tableLabel = new JLabel("  : " + Restaurant.tableNumber);
    tableLabel.setBounds(16, 6, 61, 16);
    contentPane.add(tableLabel);

这可能是一个愚蠢的问题,但您确定在GUI中的num_Table字段中按enter键,因为发生这种情况时会设置变量。您可能还应该通过构造函数将其传递到主页面,而不是作为静态变量。

这可能是一个愚蠢的问题,但您确定在GUI中的num_Table字段中按enter键,因为发生这种情况时会设置变量。您可能还应该通过构造函数将其传递到MainPage,而不是作为静态变量。

在源代码中找不到变量tableLabel tableLabel在菜单页类中可能重复的不能在源代码中找到变量tableLabel在菜单页类中可能重复的是,我在输入num_表的数字后按了enter键,它仍然返回null。
if(e.getKeyCode()==10){tableNumber=num_表.getText();}
尝试用一个简单的系统调试这一行。out.println(…)然后检查是否满足if条件。我将键入的键更改为按下的键,值现在返回到标签中。谢谢大家。是的,我在输入num_表的数字后按了enter键,它仍然返回null。
if(e.getKeyCode()==10){tableNumber=num_表。getText();}
尝试用一个简单的系统调试这一行。out.println(…)然后检查是否满足if条件。我将键入的键更改为按下的键,值现在返回到标签中。谢谢各位。