2016-04-08 2 views
1

Я пытаюсь передать номер таблицы из класса ресторана в таблицуLabel, которая находится в классе страницы меню. Когда код запускается, 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); 

} 
} 

Извлечение из класса Menu Page

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

не может найти переменную tableLabel в вашем исходном коде – mrbela

+0

tableLabel находится в странице меню Class –

+1

Возможный дубликат [Таблица поля текстаNum не передает String в tableLabel из другого класса] (http://stackoverflow.com/ Вопросы/36426773/the-textfield-tablenum-doesnt-pass-string-in-tablelabel-from-another-class) –

ответ

0

Это может быть глупый вопрос, но вы уверены, что вы нажимаете ввести при нахождении внутри num_Table поля внутри вашего GUI, поскольку переменная устанавливается, когда это происходит. Также вы должны передать его через конструктор MainPage, а не как статическую переменную.

+0

Да, я нажал enter после ввода числа для num_Table и он по-прежнему возвращает null. –

+0

'if (e.getKeyCode() == 10) { tableNumber = num_Table.getText(); } ' Попробуйте отладить эту строку простым System.out.println (...) и проверьте, выполнено ли условие if. – Thomas

+0

Также помните об этом [link] (http://stackoverflow.com/a/7071810/6156726) – Thomas

Смежные вопросы