Я работаю с различными панелями, которые являются частью CardLayOut, и каждая панель имеет некоторые текстовые поля, раскрывающийся список и элементы флажка внутри, что я хочу сделать, это получить информацию от каждого элемента, используя кнопка за пределами макета. Я узнал, как получить свойства каждого элемента, вот мое определение CardLayout:Получение информации из элементов внутри CardLayout
layCard= new CardLayout();
MainPanel.setLayout(layCard);
MainPanel.add("Panel1",InfoPanel);
MainPanel.add("Panel2",selection);
MainPanel.add("Panel3",questions);
MainPanel.add("Panel4",summary);
А вот мой метод при попытке получить информацию элемента внутри панели внутри MainPanel Внутри CardLayout :
private void printValues(java.awt.event.ActionEvent evt) {
System.out.println(""+MainPanel.getComponent(0).getAccessibleContext().getAccessibleChild(2).getAccessibleContext().getAccessibleText());
}
в этом случае я доступ к элементу 0 из MainPanel, который InfoPanel и попытаться получить значение от ребенка 2, который является JTextField, но я могу»понять, как получить значение внутри поле, я даже не знаю, есть ли способ, который может помочь в этом. Есть ли у вас какие-либо предложения о том, как это сделать?
Если 'MainPanel.getComponent (0) .getAccessibleContext(). GetAccessibleChild (2) .getAccessibleContext(). GetAccessibleText()' дает вам 'JTextField', почему бы вам просто не перевести его на' JTextField', а затем нам метод 'JTextField # getText()'? – STaefi
Должно быть что-то вроде метода getValue(). Этот метод должен возвращать объект «Объект», захватить этот объект и передать его в String –
Да, дело в том, что у меня есть JTextFields и другие компоненты, которые не возвращают значения Strings в качестве значений, я попробовал лить весь компонент как @STaefi сказал, и похоже, что он работает так, как я ожидал. Благодаря стенду из вас. –